我根据文档在 Windows (8.1) 机器上构建了 boost (1.56) 库,作为共享库和静态库。
他们全部出现在BOOST_ROOT/stage/lib
目录,文件名格式如下:
boost_thread-vc120-mt-1_56.dll
boost_thread-vc120-mt-1_56.lib
boost_thread-vc120-mt-gd-1_56.dll
boost_thread-vc120-mt-gd-1_56.lib
(这只是线程库,所有其他库也使用相同的格式)
当我运行 cmake 时,它抱怨无法找到 boost 库。
运行它-DBoost_DEBUG=ON
显示它寻找不同的文件名:
libboost_thread-vc120-mt-s-1_56;
libboost_thread-vc120-mt-s;
libboost_thread-mt-s-1_56;
libboost_thread-mt-s;
libboost_thread
我注意到以下差异:
- 实际文件的前缀是
boost
并不是libboost
因为 cmake 正在寻找
- 实际文件的静态版本只是具有不同的文件扩展名(.lib 而不是 .dll),但 cmake 正在寻找
-mt-s
知道如何让 cmake 找到实际文件而不重命名我必须匹配 cmake 搜索格式的文件吗?
Thanks
Note: boost_thread-vc120-mt-1_56.lib
is an import允许动态链接的库boost_thread-vc120-mt-1_56.dll
, while libboost_thread-vc120-mt-s-1_56
is a static图书馆 (s
字母表示它也与 CRT 静态链接)。
您尝试构建的应用程序需要具有静态 CRT 的静态 Boost 库,因此您应该提供它们。要构建此类库,请调用b2
与适当的参数 http://www.boost.org/build/doc/html/bbv2/overview/invocation.html:
b2 variant=release link=static runtime-link=static stage
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)