【发布时间】:2010-08-18 19:12:56
【问题描述】:
我使用 CMake 和 Visual C++ 来构建 HyDE 库。然后,仍然在 VC++ 中,我能够成功地创建代码并构建链接到 HyDE.lib 和 HyDE 头文件的可执行文件。
然后我发现,为了与我公司的其他人一起工作,最好使用 Eclipse CDT 进行开发。由于对 Eclipse CDT 知之甚少,我创建了一个默认的 hello world 项目,删除了代码,然后将所有代码转储到 src 文件夹中。然后我尝试更改包含和库路径和库以反映在 VC++ 中工作的内容。此时一切似乎都可以编译,但我在链接时遇到错误:
/cygdrive/c/EclipseWorkspace/425HyDE/Debug/../src/FS5HyDE.cpp:16:未定义对“HyDEAPI::HyDE::HyDE(HyDESystemModel::SystemModel*, bool)”的引用
(这样的错误还有很多,都是指 HyDE 方法。)下面是命令行运行的:
g++ -L"C:\Progra~1\boost\boost_1_42\lib" -L"C:\EclipseWorkspace\HyDE" -o"425HyDE.exe" ./src/Adapter_FS5HyDE.o ./src/EPSCommands。 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 自动生成生成文件的方式是否存在问题?还有其他想法吗?
(注意:似乎还有很多其他关于 SO 的问题存在类似问题,但在阅读完这些问题后,我还没有找到解决我问题的问题。)
【问题讨论】:
标签: c++ linker g++ makefile eclipse-cdt