首页 > 解决方案 > QBS为静态链接MSVC创建静态库

问题描述

我需要将应用程序构建为带有 boost 的独立模块(已经在带有 /MT 标志的静态模式下编译)。使用 Visual Studio 17(MSVC) 我的项目由一个静态库和一个控制台应用程序组成。

import qbs 1.0

Project {
    property string SDK: ''
    Product {
        name: 'MyLib'
        type: 'StaticLibary'
        Depends {name: 'cpp'}
        Group {
            name: 'src'
            files: './src/*.cpp'
        }
        Group {
            name: 'include'
            files: './include/MyLib/*.cpp'
        }
        cpp.cxxLanguageVersion: 'c++11'
        Properties {
            condition: qbs.toolchainType.contains('msvc')
            cpp.cxxFlags: ['/MT'] //don't replace default compiller flag /MT
        }
    }
    Product {
        name: 'app'
        type: 'ConsoleApplication'
        Depends {name: 'cpp'}
        Depends {name: 'MyLib'}
        cpp.cxxFlags: ['/MT']
        //othre depends from boost and CPP
    }
}

cpp.cxxFlags: ['/MT']

附加额外的参数,但我需要替换标志。任何想法我该怎么做?

标签: c++qbsmsvc14

解决方案


cpp.runtimeLibrary:'静态'

将标志 /MD 替换为 /MT 并在调试版本中附加“d”后缀


推荐阅读