c++ - 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']
附加额外的参数,但我需要替换标志。任何想法我该怎么做?
解决方案
cpp.runtimeLibrary:'静态'
将标志 /MD 替换为 /MT 并在调试版本中附加“d”后缀
推荐阅读
- android - android xml中的布局重叠
- javascript - 传递要存储在变量中的数组元素
- java - Java 和 SetWindowDisplayAffinity
- r - 如何用R数据集中的“NA”替换字符列中的空白值?
- mysql - 如何修复 mysql 创建表错误,ERROR 1030 (HY000): Got error 168 from storage engine
- c++ - 搜索记录集/更新值
- solr - 如何使用 solr 在距离我的用户位置(Lat、Long)一定距离内找到位置(Lat、Long)?
- activiti - Activiti 5.15.1 流程定义在 activiti 7.0.0.SR1 版本上工作,没有任何改变,如模式和其他?
- reactjs - this.setState() 之后的 setState 回调函数上的 this.state
- python - pip virtualenv 重新激活后重置路径