cl.exe: LNK1104: не могу открыть файл - и я даже не говорю ему, чтобы связать - PullRequest
0 голосов
/ 29 января 2012

Я компилирую несколько источников C ++, используя cl.exe (Visual Studio 2010 Express). Исходники хорошо компилируются и генерируют соответствующие 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 ]

1 голос
/ 29 января 2012

По умолчанию большинство (если не все) компиляторов C / C ++ выполняют шаг компоновки, если вы явно не скажете им не делать этого.

Если вы посмотрите на эту страницу , которая охватывает "cl.exe", вы найдете параметр /c (только компиляция, без ссылки), который изменит это поведениепрочь.

1 голос
/ 29 января 2012

Вы говорите это по ссылке.Если вы не хотите ссылаться, используйте параметр /c (только для компиляции).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...