我用CMake和Visual C++來構建HyDE庫。然後,仍然在VC++中,我能夠成功創建代碼並構建可鏈接到HyDE.lib和HyDE頭文件的可執行文件。g ++鏈接問題:對函數的未定義引用
然後我發現爲了和我公司的其他人一起工作,最好在Eclipse CDT中開發。對於Eclipse CDT知之甚少,我創建了一個默認的hello world項目,刪除了代碼,然後將所有代碼轉儲到src文件夾中。然後我試圖改變includes和lib路徑和庫以反映VC++中的工作。在這一點上似乎一切編譯,但是我在聯得到一個錯誤:
/cygdrive/c/EclipseWorkspace/425HyDE/Debug/../src/FS5HyDE.cpp:16:未定義的引用`HyDEAPI: :海德::海德(HyDESystemModel :: SystemModel *,布爾)」
(有很多這樣的更多的錯誤,都指海德方法。)下面是在命令行中運行:
g ++ -L「C:\ Progra〜1 \ boost \ boost_1_42 \ lib」-L「C:\ EclipseWorkspace \ HyDE」-o「425HyDE.exe」./src/Adapter_FS5HyDE.o ./src/EPSC ommands.o ./src/EPSCurrentSensor.o ./src/EPSFault.o ./src/FS5HyDE.o ./src/HyDEObservation.o ./src/MCDH.o ./src/MCDH_Module.o ./src/PDBComponent .o ./src/PowerSystem.o ./src/Program.o ./src/SSPCComponent.o ./src/Telemetry.o ./src/TelemetryReport.o -l:libboost_thread-vc90-mt-gd-1_42。 lib -lHyDE
這絕對不是庫訂購問題,因爲我也有其他訂購(只有兩個)。在VC++(使用Windows編譯器)中編譯HyDE.lib並用g ++編譯我的程序時可能有問題嗎? Eclipse CDT是否會自動生成makefiles,這會不會有問題?任何其他想法?
(注:似乎有很多其他問題上的SO類似的問題,但通過他們看完之後,我還沒有找到一個解決我的問題)
-L「C:\ EclipseWorkspace \ HyDE」和上面的帖子中的lHyDE *應該*按照你說的去做。我也試過-l:HyDE.lib。同樣的結果。 – JnBrymn 2010-08-18 19:26:48
您是否能夠在命令行上鍊接 - 沒有日食。鏈接是否可以與您使用的任何命令行一起工作?你可以嘗試的另外一件事是-l「包括lib名稱的完整庫路徑」 – Gangadhar 2010-08-18 19:41:10
@Gandahar我無法使用相同的命令在命令行上進行鏈接。還使用-l「完整路徑」不起作用。使用-l「完整的cygwin路徑」不起作用。 – JnBrymn 2010-08-18 19:56:04