0

我一直在使用 VS10 来构建一个 dll,但我想证明它也可以在 Eclipse 中完成。

Eclipse 中的明显症状是链接器失败并出现以下问题:

LINK : fatal error LNK1104: cannot open file 'C:\Program.obj'

这大概是因为有些东西没有保护 C:\Program Files(x86)... 参数中的空格,我有几个。

我可以通过将命令复制到 CMD 提示符并手动在包含空格的参数周围加上引号来运行命令,所以我 99.9% 确定问题是 Eclipse 没有在这些参数周围加上引号。工作命令是:

link /DLL /debug /nologo /OUT:PIDExternalController.dll main.obj C:\Opt\Bladed\Main\Test\Code\ExternalController\Debug\ExternalControllerApi.lib "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\delayimp.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\Kernel32.Lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\oldnames.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\msvcrt.lib"

Eclipse 的命令回显是相同的,但没有引号(尽管这不一定证明什么,因为编译器回显没有显示它实际上使用的引号)。

我找不到任何选项或合法机制来让 Eclipse 在其对链接器的调用周围加上引号 - 但这必须是一个常见的要求。我错过了什么明显的东西吗?

4

1 回答 1

6

在 Eclipse > Project > Properties > Paths and Symbols > Libraries 选项卡中,将库的路径括在单引号中:

'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\Kernel32.Lib'

会有一条警告说该路径不存在,但在您重建项目后它应该会消失。

于 2012-10-23T15:37:10.180 回答