如何在任何 Windows 计算机上 运行 一个 .exe 文件?
How can I run a .exe file on any Windows computer?
我朋友想让我给他做这个程序,他不是很懂技术。如何在不让他下载任何额外内容的情况下制作 .exe 运行?它是在 Visual Studio.
上用 C++ 编写的
如果您的程序使用标准库中的任何东西,它将需要 Visual C++ 运行时库,它通常是从库 DLL 加载的(类似于 msvcr110.dll
)。
但是你可以指示 编译器(linker,而不是)包括(我不是说#包含头文件)库作为可执行文件的一部分(exe
文件)。 (我猜你想到了 ISO,因为归档文件会包含所有必需的 DLL)根据 https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx,使用 /MT 编译器选项将导致 Visual C++ 运行时库(即预编译代码中的库)在 linking 期间包含在您的程序中(与默认的 /MD 选项相反,它只会导致帮助您的程序 link 进入主库 DLL 的代码包括)。
更正:程序会更大,但由于 linker 实际上并没有将 everything 添加到输出程序,输出文件的大小取决于程序使用的内容。 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标志行。
编辑:确保在应用这些设置后清理解决方案(构建 -> 清理解决方案)。否则 link 用户可能仍会尝试使用旧文件。
我朋友想让我给他做这个程序,他不是很懂技术。如何在不让他下载任何额外内容的情况下制作 .exe 运行?它是在 Visual Studio.
上用 C++ 编写的如果您的程序使用标准库中的任何东西,它将需要 Visual C++ 运行时库,它通常是从库 DLL 加载的(类似于 msvcr110.dll
)。
但是你可以指示 编译器(linker,而不是)包括(我不是说#包含头文件)库作为可执行文件的一部分(exe
文件)。 (我猜你想到了 ISO,因为归档文件会包含所有必需的 DLL)根据 https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx,使用 /MT 编译器选项将导致 Visual C++ 运行时库(即预编译代码中的库)在 linking 期间包含在您的程序中(与默认的 /MD 选项相反,它只会导致帮助您的程序 link 进入主库 DLL 的代码包括)。
更正:程序会更大,但由于 linker 实际上并没有将 everything 添加到输出程序,输出文件的大小取决于程序使用的内容。 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标志行。
编辑:确保在应用这些设置后清理解决方案(构建 -> 清理解决方案)。否则 link 用户可能仍会尝试使用旧文件。