Visual c++ 从命令行和MVCR90.DLL编译Visual C++程序 当我从IDE内部编译VisualC++ 2008 Express程序并重新分配到另一台计算机时,它启动得很好,没有任何我没有解释的DLL依赖。当我在开始菜单下从Visual C++ 2008命令行编译相同程序并将其重新分配到另一台计算机时,它在启动时寻找MSVCR90.DLL。p>

Visual c++ 从命令行和MVCR90.DLL编译Visual C++程序 当我从IDE内部编译VisualC++ 2008 Express程序并重新分配到另一台计算机时,它启动得很好,没有任何我没有解释的DLL依赖。当我在开始菜单下从Visual C++ 2008命令行编译相同程序并将其重新分配到另一台计算机时,它在启动时寻找MSVCR90.DLL。p>,visual-c++,dll,windows,Visual C++,Dll,Windows,下面是如何从命令行编译它 cl/Fomain.obj/c main.cpp/nologo-O2-DNDEBUG/MD/ID:include目录列表 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

下面是如何从命令行编译它

cl/Fomain.obj/c main.cpp/nologo-O2-DNDEBUG/MD/ID:include目录列表 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传递给编译器,因此我不确定该怎么做

我知道这并不完全是您想要的,但您可以从命令行调用ide构建,它应该会给您相同的输出:

devenv solution.sln /build Release

这将为solution.sln构建发布配置。devenv/?有关更多信息,请参见命令行。

这本身就是有用的信息,但我正在使用Scons创建多平台构建。我可以使用sCONs调用DEVENV,但是每次我向SCONS文件添加一个源文件时,我都需要向VisualC++项目添加一个源文件。理想情况下,我希望能够将正确的参数传递给编译器和链接器。我想我从您的问题中得到的印象是,您的主要开发环境是IDE。看来情况并非如此。可能仍然不太理想,但您的构建工具可能会生成项目文件?