我正在編寫一個應用程序,通過靜態庫(包括tinyxml2,sqlite3,openssl和libpq)鏈接所有第三方代碼;一切工作正常以後,每當我嘗試鏈接到libpqd.lib - 它們使用了9.1.9和9.2.4的來源 - 我越來越:LNK2005與libpq作爲靜態庫
1>LIBCMTD.lib(dosmap.obj) : error LNK2005: __dosmaperr already defined in libpqd.lib(win32error.obj)
這是唯一的錯誤,我到目前爲止搜索一直沒有結果。請注意,我在所有庫中都使用了多線程調試運行時庫/MTd
,postgresql默認情況下沒有此庫;我已經手動修補了win32.mak以使用/MTd
和/MT
代替之前不可配置的/MDd
和/MD
。這解決了以前的一些鏈接器錯誤,但不認爲它與最終的錯誤有關,因爲它之前就存在。
我通過編譯的libpq:
nmake /f win32.mak DEBUG=1
,並鏈接到它的:
#pragma comment (lib, "libpqd.lib")
圖書館目錄配置項目中,和庫複製到這個文件夾,所以我知道這是正確的使用。
這通常是一個容易解決的錯誤,但我不知道該往哪裏看!
線程確實存在這個在PostgreSQL的網站,但不會出現已經解決:http://www.postgresql.org/message-id/[email protected]
謝謝你的男人!它真的工作得很好嗎?我的意思是修補源 – herolover 2016-09-23 10:50:35