Компиляция программ Visual c ++ из командной строки и msvcr90.dll - PullRequest
1 голос
/ 04 декабря 2009

Когда я компилирую свою программу Visual C ++ 2008 Express из среды IDE и перераспределяю ее на другом компьютере, она запускается нормально без каких-либо зависимостей dll, которые я не учел. Когда я компилирую ту же программу из командной строки visual c ++ 2008 в меню «Пуск» и перераспределяю ее на другой компьютер, при запуске она ищет msvcr90.dll.

Вот как это скомпилировано из командной строки

cl /Fomain.obj / c main.cpp / nologo -O2 -DNDEBUG / MD / ID: (список включаемых каталогов) link / nologo / SUBSYSTEM: WINDOWS / ENTRY: mainCRTStartup /OUT:Build\myprogram.ex e / LIBPATH: D: \ libs (список библиотек)

и вот как IDE создает его на основе соответствующих частей журнала сборки.

 /O2 /Oi /GL /I clude" /I (list of includes) /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D    "_UNICODE" /D "UNICODE" /FD /EHsc /MD /Gy /Yu"stdafx.h" /Fp"Release\myprogram" /Fo"Release\\" /Fd"Release\vc90.pdb" /W3 /c /Zi /TP /wd4250   /vd2

Creating command line "cl.exe @d:\myprogram\Release\RSP00000118003188.rsp /nologo /errorReport:prompt"

/OUT:"D:\myprgram\Release\myprgram.exe" /INCREMENTAL:NO /LIBPATH:"d:\gtkmm\lib" /MANIFEST /MANIFESTFILE:"Release\myprogam.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"d:\myprogram\Release\myprogram.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /MACHINE:X86 (list of libraries)

Creating command line "link.exe @d:\myprogram\Release\RSP00000218003188.rsp /NOLOGO /ERRORREPORT:PROMPT"

/outputresource:"..\Release\myprogram.exe;#1" /manifest

.\Release\myprogram.exe.intermediate.manifest
Creating command line "mt.exe @d:\myprogram\Release\RSP00000318003188.rsp /nologo"

Я хотел бы иметь возможность скомпилировать его из командной строки и не заставлять его искать такую ​​более позднюю версию библиотеки DLL времени выполнения, как, похоже, не скомпилированная из IDE версия. Обе версии передают / MD компилятору, поэтому я не уверен, что делать.

1 Ответ

0 голосов
/ 04 декабря 2009

Я знаю, что это не совсем то, что вы ищете, но вы можете вызвать ide build из командной строки, и он должен дать вам тот же результат:

devenv solution.sln /build Release

Это создаст конфигурацию выпуска для solution.sln. (devenv /? в командной строке для получения дополнительной информации).

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