這是我再次。我回來了一個全新的項目和一個全新的問題。 我正在努力爲Growl實現一些東西。使用靜態或共享庫(均提供)。我包括必要的標題並鏈接到圖書館。 (實際上有兩種方法,一種通過項目屬性,另一種通過雜注語句)。然而,IM仍在接收下面的鏈接器錯誤:圖書館鏈接器錯誤讓我生氣
error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall Growl::Growl(enum Growl_Protocol,char const * const,char const * const,char const * * const,int)" ([email protected]@[email protected][email protected]@[email protected])
error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall Growl::~Growl(void)" ([email protected]@[email protected])
fatal error LNK1120: 2 unresolved externals
的是導致這些鏈接器錯誤代碼的行是這樣的線:
const char *n[2] = { "username" , "password" };
Growl *growl = new Growl(GROWL_TCP,NULL, "Appname", (const char **const)n,2);
頭文件被包含在文件的頂部
#include "..\\..\\..\\libs\\Growl\\growl++.hpp"
#pragma comment(lib, "..\\..\\..\\libs\\Growl\\libgrowl-static++.lib")
頭源可以在這裏找到: https://github.com/psinnott/gntp-send/blob/master/headers/growl%2B%2B.hpp
,我用下面的連接線我取回預先生成的二進制文件從以下頁面: https://github.com/psinnott/gntp-send/wiki/Windows
一些額外的信息:我有我的項目化子性質字符集使用多字節字符集,即時通訊的假設下,這應該不會影響任何東西。這也是一個Win32控制檯應用程序。
我哪裏錯了?
更新:
通過谷歌發現這一點: http://groups.google.com/group/growl-for-windows/browse_thread/thread/6c48a62454d062f1
跟着指示:
添加了libgrowlstatic.lib(並排libgrowlstatiC++ IIb)的
添加預處理器定義,GROWL_STATIC和GROWL_CPP_STATIC
有很多錯誤,包括:
LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
fatal error LNK1169: one or more multiply defined symbols found
所以我增加了以下線項目屬性,鏈接器,命令行:
/NODEFAULTLIB:MSVCRTD /NODEFAULTLIB:LIBCMT
現在即時得到很多更多的錯誤,包括以下一些:
libgrowl-static.lib(tcp.obj) : error LNK2019: unresolved external symbol _atoi referenced in function _growl_tcp_parse_hostname
libgrowl-static.lib(tcp.obj) : error LNK2019: unresolved external symbol _strchr referenced in function _growl_tcp_parse_hostname
libgrowl-static.lib(growl-static.obj) : error LNK2019: unresolved external symbol _fseek referenced in function _growl_tcp_register
libgrowl-static.lib(growl-static.obj) : error LNK2019: unresolved external symbol _fopen referenced in function _growl_tcp_register
libgrowl-static.lib(growl-static.obj) : error LNK2019: unresolved external symbol _strcpy referenced in function _growl_udp_notify
去過在這幾個小時,似乎無法弄清楚。 10多個意見,沒有回覆? 我發誓我不懶惰。我研究了一些關於圖書館的答案,但沒有多少運氣。沒有任何解釋爲什麼這是行事的方式。請幫忙!
歡迎回來,李維斯,我們都非常想念你:-) – paxdiablo 2012-03-13 03:53:48
嘿嘿。謝謝Pax。 =) – 2012-03-13 03:57:56
鏈接器正在尋找導出的函數,但您似乎提供了一個靜態庫,而不是一個導入庫。 – 2012-03-13 03:59:16