库的命名规则
Windows平台
建议参考boost的命名规范
参考文章
- Boost官网的《Geting Started On Windows》(http://www.boost.org/doc/libs/1_38_0/more/getting_started/windows.html)提到了Boost库的命名
- Boost库命名规则
以 libboost_regex-vc71-mt-d-1_34.lib
为例
说明 | |
---|---|
lib |
除了Microsoft Windows之外,每一个Boost库的名字都以此字符串开始 - 在Windows上,只有普通的静态库使用lib前缀; - 导入库和DLL不使用 |
boost_regex |
库名称:所有boost库名文件以boost_开头 |
-vc71 |
Toolset 标记:标识了构建该库所用的toolset和版本 |
-mt |
Threading 标记:标识构建该库启用了多线程支持。不支持多线程的库没有-mt |
-d |
ABI标记:编码了影响库和其他编译代码交互的细节。对于每一种特性,向标记中添加一个字母: - s 静态链接到C++标准库和编译器运行时支撑库- g 使用标准库和运行时支撑库的调试版本- y 使用Python的特殊调试构建- d 构建代码的调试版本- p 使用STLPort标准库而不是编译器提供的默认库- n 使用STLPort已被弃用的“native iostreams” |
-1_34 |
版本标记:完整的Boost发布号,下划线代替点。例如,1.31.1版本将被标记为“-1_31_1” |
.lib | 扩展名:取决于操作系统。在大多数unix平台上,.a是静态库,.so是共享库。在Windows上,.dll表示共享库,.lib是静态或导入库。 |
【其他flag】
MT | 多线程连接静态库 链接的库为LIBCMT.lib |
---|---|
ML | 单线程连接静态库 链接的库为LIBC.lib |
MD | 多线程连接动态库 链接的导入库MSVCRT.lib 可使用_MT和_DLL指定此编译参数 |
MTd MLd MDd 为对应的调试版本
linux平台
一般linux平台编译,它自己会带上版本。所以不用加后缀
cmake给编译结果加后缀
set(CMAKE_DEBUG_POSTFIX "_d") #debug后缀
set(CMAKE_RELEASE_POSTFIX "_r") #release后缀
set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d") set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r")