我用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