我正在使用cl.exe
(Visual Studio 2010 Express)编译几个C ++源代码。源代码编译正常并生成相应的obj
文件,但在“生成代码...”的最后一行之后,它会抛出臭名昭着的LNK1104
错误,但是我见过的最奇怪的错误:
Generating Code...
LINK : fatal error LNK1104: cannot open file 'Color.exe'
现在,Color.exe
不存在,我不希望它存在,我不是告诉cl创建它,我甚至都没有告诉它链接,我只想编译。 Color.obj
恰好是编译器的第一个输出文件(按字母顺序排列),所以我认为这个问题与它有点联系。
我的cl.exe
调用的命令行如下所示(我修剪了包含,它们不是问题的一部分):
cl /nologo /Ox /EHsc /I[...] "D:\Projects\Java\JSFML\src\cpp\Intercom\*.cpp" "D:\Projects\Java\JSFML\src\cpp\JNI\*.cpp" /FoD:\Projects\Java\JSFML\out\obj\
工作目录是MS Visual Studio目录。我认为它无法“打开”Color.exe
,因为它无法在该目录中写入。但是,我的问题是:为什么cl
甚至想创建它?我不是要告诉它链接?
答案 0 :(得分:1)
你告诉它链接。如果您不想链接,请使用/c
选项(仅限编译)。
答案 1 :(得分:1)
大多数(如果不是全部)C / C ++编译器的默认设置是执行链接步骤,除非您明确告诉他们不要这样做。
如果您查看涵盖“cl.exe”的this page,您会找到一个选项,/c
(仅编译,无链接),可以为您关闭该行为。