【问题标题】:Build multiple versions of static library from one Visual Studio project从一个 Visual Studio 项目构建多个版本的静态库
【发布时间】:2019-04-24 21:42:51
【问题描述】:

我有几个项目 A 到 F,每个项目都依赖于静态库 L。每个项目都是我的 Visual Studio 解决方案中的一个项目。

不幸的是,项目 F 需要构建稍微不同风格的静态库(目前通过在构建选项中定义预处理器指令来使用 if/endif 指令选择不同的代码段来实现,因为特殊情况代码添加了额外的项目 A-E 不关心的依赖项)。

我目前通过制作包含所有相同源文件的第二个库项目“L_withflag”来解决此问题,并且效果很好。我想知道是否有一种更简单的方法,不需要使用相同的底层代码库维护两个独立的项目。

有没有一种方法可以让静态库项目 L 构建两个输出,一个设置标志,一个不设置(例如 L.lib 和 L_withflag.lib),并允许每个项目指定它想要哪个库作为输入?

【问题讨论】:

    标签: c++ visual-studio static-libraries


    【解决方案1】:

    Visual Studio 允许您为一个解决方案提供多种构建配置。默认情况下,对于 C++,您将获得 Debug 和 Release 配置,但您可以通过转到

    来添加其他配置
    Build > Configuration Manager > Active Solution Configuration (pull down list) > New
    

    选择新建时,您可以从现有配置(调试、发布)中复制设置。因此,您可以创建配置“发布 - 选项 A”、“发布 - 选项 B”,然后为每个配置编辑项目设置以设置不同的预处理器指令。

    在项目设置中,您还可以设置不同的 DLL 名称和/或输出文件夹。

    【讨论】:

    • 是的,我可以添加这些额外的配置,但我需要构建这两种配置以满足我所有项目的依赖关系。我猜这使我能够分别构建两个依赖树,并且可以进行批量构建。这就是你的建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多