如何仅部署单个可执行文件

时间:2016-11-07 04:46:23

标签: c++ visual-studio compilation static-linking

MSVC ++为希望仅部署单个可执行文件的程序员提供优化。您可以使用/ MT构建以将C ++运行时库和标准C ++库链接到EXE中;或/ MD调用C ++运行时库(.DLL文件)。

但对于您自己的代码或第三方DLL,是否可以只生成一个可执行文件?

假设项目PrjA使用PrjB;现在,PrjB仅生成动态库PrjB.dll,而不是静态库PrjB.lib。有一种方法可以配置它们,以便PrjA可以生成PrjA.exe,其中嵌入PrjB.dll,这样只需要部署一个文件?

注意:约束条件是仅提供PrjB.DLL,不提供静态库prjB.LIB。这个问题与C++ How to compile dll in a .exe不同。

MSVC /MD, /MT config using C++ Runtime Library

  • / MD使应用程序使用特定于多线程的和 DLL特定版本的运行时库。

  • / MT使应用程序使用运行时库的多线程静态版本。

1 个答案:

答案 0 :(得分:0)

正如其他几个SO answers所述,此任务可以使用外部工具。 BoxedApp在他们中间受到高度重视(但付费)。