我的朋友希望我让他参加这个项目,他不是很精通技术。如何在不让他下载额外内容的情况下运行.exe?它在Visual Studio上用C ++编写。
答案 0 :(得分:5)
如果您的程序使用标准库中的任何内容,则需要Visual C ++运行时库,该库通常从库DLL(类似msvcr110.dll
)加载。
但是,您可以指示编译器(链接器,而不是)包含(我不是指#include-header文件)库作为您的一部分可执行文件(exe
文件)。 (我猜你想到了ISO,因为归档文件会包含所有必需的DLL)根据https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx,使用/ MT编译器选项将导致Visual C ++运行时库的“多线程,静态版本”(这是链接期间要包含在程序中的预编译代码中的库(与默认/ MD选项不同,后者只会导致帮助程序链接到主库DLL的代码)。
更正:程序会更大,但由于链接器实际上没有将所有内容添加到输出程序中,因此输出文件的大小取决于程序的内容使用。 Microsoft Visual Studio ~ C/C++ Runtime Library ~ Static/dynamic linking这可能会有所帮助。 (如果您有兴趣,请查看Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
(不要忘记替换版本号)。)
转到项目设置 - >配置属性 - > C / C ++ - >代码生成并将runtime library
设置为Multi-threaded (MT)
。
更正:即使在命令行中保留默认/ MD或/ MDd标志,似乎直接设置编译器标志将也能正常工作。
编辑:确保在应用这些设置后清理解决方案(build - > clean solution)。否则,链接器可能仍会尝试使用旧文件。