cl.exe:LNK1104:无法打开文件 - 我甚至没有告诉它链接

时间:2012-01-29 06:51:22

标签: visual-c++

我正在使用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甚至想创建它?我不是要告诉它链接?

2 个答案:

答案 0 :(得分:1)

你告诉它链接。如果您不想链接,请使用/c选项(仅限编译)。

答案 1 :(得分:1)

大多数(如果不是全部)C / C ++编译器的默认设置是执行链接步骤,除非您明确告诉他们不要这样做。

如果您查看涵盖“cl.exe”的this page,您会找到一个选项,/c(仅编译,无链接),可以为您关闭该行为。