2012-01-29 104 views
0

我使用cl.exe(Visual Studio 2010 Express)編譯多個C++源代碼。來源正在編制罰款,併產生相應的obj文件,但最後行之後「生成代碼...」它拋出臭名昭著LNK1104錯誤,但最奇怪的那種我所見過的:cl.exe:LNK1104:無法打開文件 - 我甚至沒有告訴它鏈接

Generating Code... 
LINK : fatal error LNK1104: cannot open file 'Color.exe' 

現在,Color.exe不存在,我不希望它存在,我不告訴它創建它,我甚至不告訴它鏈接,我只想編譯。 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竟然要創建它?我沒有告訴它鏈接?

+1

嘗試添加一個/ c到你的編譯,意思是「編譯,不要鏈接」。 – 2012-01-29 07:00:49

回答

1

大多數(如果不是全部的話)C/C++編譯器的缺省值是執行鏈接步驟,除非你明確地告訴它們不要。

如果你看一看this page覆蓋「cl.exe時」,你會發現一個選項,/c(只編譯,不鏈接),會變成這種行爲關閉你。

1

您正在告訴它鏈接。如果您不想鏈接,請使用/c選項(僅用於編譯)。

相關問題