1 votes

Compilation de programmes Visual c++ à partir de la ligne de commande et msvcr90.dll

Lorsque je compile mon programme Visual c++ 2008 express depuis l'IDE et que je le redistribue sur un autre ordinateur, il démarre correctement sans aucune dépendance de dll que je n'ai pas prise en compte. Lorsque je compile le même programme à partir de la ligne de commande de Visual C++ 2008 sous le menu Démarrer et que je le redistribue sur l'autre ordinateur, il recherche msvcr90.dll au démarrage.

Voici comment il est compilé à partir de la ligne de commande

cl /Fomain.obj /c main.cpp /nologo -O2 -DNDEBUG /MD /ID :(liste des répertoires d'inclusion) link /nologo /SUBSYSTEM:Windows /ENTRY:mainCRTStartup /OUT:Build \myprogram.ex e /LIBPATH : D:\libs (liste des bibliothèques)

et voici comment l'IDE le construit en se basant sur les parties pertinentes du journal de construction.

 /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"

J'aimerais pouvoir le compiler à partir de la ligne de commande et ne pas avoir à rechercher une version si tardive de la dll d'exécution, comme la version compilée à partir de l'IDE semble ne pas le faire. Les deux versions passent /MD au compilateur, donc je ne sais pas trop quoi faire.

0voto

Dolphin Points 2694

Je sais que ce n'est pas exactement ce que vous recherchez, mais vous pouvez invoquer l'ide build à partir de la ligne de commande et vous devriez obtenir le même résultat :

devenv solution.sln /build Release

Cela permettra de construire la configuration Release pour solution.sln. (devenv / ? sur la ligne de commande pour plus d'informations).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X