【问题标题】:Building a stand alone C++ exe. Linking statically with msbuild构建一个独立的 C++ exe。使用 msbuild 静态链接
【发布时间】:2021-07-25 03:47:06
【问题描述】:

我目前有一个使用 msbuild 构建的 C++ 项目。 项目建成后,我会得到一个 exe 以及多个 dll 文件。 有没有办法告诉 msbuild 静态链接到这些库? 我无法在 Visual Studio 中打开项目,但我可以对 vcxproj 进行更改。 关于如何实现这一点的任何建议?

【问题讨论】:

  • 将项目类型改为静态库,而不是动态库。它不是 msbuild 的一部分,而是项目属性的一部分。

标签: c++ msbuild visual-studio-2019


【解决方案1】:

在 vcxproj 文件中,更改:

<ConfigurationType>DynamicLibrary</ConfigurationType>

<ConfigurationType>StaticLibrary</ConfigurationType>

另外,在PreprocessorDefinitions 部分中,删除xxx_EXPORTS(其中xxx 是项目名称)和_USRDLL,并替换为_LIB

注意:每个配置(包括ConfigurationType)对于您拥有的每个配置(即调试、发布等)都会出现一次。

【讨论】:

  • 谢谢。我的配置类型是 ConfigurationType &lt;ConfigurationType&gt;Application&lt;/ConfigurationType&gt; 。它在其他 lib 文件上有 ,我需要将这些文件的 dll 与我的 exe 一起复制
  • @Rajeshwar,我有点困惑。您是否有权访问 DLL 项目的 vcxproj 文件,还是只能访问可执行文件?
  • 我只能访问 lib 和 dll 文件。不幸的是,我无法访问 dll 项目的 vcxproj。
  • @Rajeshwar,对不起,当您说您拥有 vcxproj 时,我误解了您的意思。在那种情况下,不,你问的是不可能的。您需要原始项目才能更改它们的类型。
【解决方案2】:

我尝试将lib文件添加到一个干净的项目中,vcxproj文件的修改如下,希望对您有所帮助:

  1. 库路径包含目录

  2. 其他依赖项

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多