我一直在使用 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 在其对链接器的调用周围加上引号 - 但这必须是一个常见的要求。我错过了什么明显的东西吗?