Eclipse CDT - 将单个库与文件路径中的空间相链接

时间:2013-05-09 21:04:25

标签: c++ eclipse g++ eclipse-cdt

使用Eclipse CDT,我试图将单个库(.lib)文件链接到我的项目中。

Eclipse setup

在编译期间,由于文件路径中的空格字符,路径将在空间周围分割,导致无法找到文件,并阻止编译成功执行。此执行字符串由Eclipse生成。

g++ -static-libgcc -static-libstdc++ -o "Test.exe" "src\\Test.o" -lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib 
g++: error: Files/Java/jdk1.7.0_15/lib/jvm.lib: No such file or directory

总的来说,它无法构建用于编译的库选项:

-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib

我已尝试用引号括起路径并将路径的目录添加为库路径,但-l选项在两种情况下都格式不正确。

如何在Eclipse CDT的路径中成功添加带空格的库?

1 个答案:

答案 0 :(得分:2)

  1. 你应该把你的路径包含空格,并附上qoutes。

  2. 您可能应在 Libraries选项卡中仅指定库名称(即jvm)。然后在库路径标签中指定"C:/Program Files/Java/jdk1.7.0_15/lib"

  3. 关键是"-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib" 有效的选项形成,因为命令解释器会将其视为单个选项,但会删除引号。

    因此,当您在cmd中键入g++ "-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib"时,传递给g ++的参数将为-lC:/Program Files/Java/jdk1.7.0_15/lib/jvm.lib而不带引号。

    但是,-l<path-to-library-file>本身的gcc无效选项。你可以使用 g++ <path-to-library-file>g++ -L<path-to-library-dir> -l<library-name>

    因此,有效选项将是

    g++ <..> "src\\Test.o" "-LC:/Program Files/Java/jdk1.7.0_15/lib" -ljvm