我正在使用cmake
并boost
制作视觉工作室解决方案.我的命令是:
F:\C++\yapimpl\build>cmake .. -G"Visual Studio 11" -DBOOST_ROOT=E:\lib\lib\boost
_1_54_0 -DBOOST_LIBRARYDIR=E:\lib\lib\boost_1_54_0\bin\vc11\lib
Run Code Online (Sandbox Code Playgroud)
虽然我已经设置BOOST_LIBRARYDIR
和BOOST_ROOT
,还在说boost_unit_test_framework
找不到.
该目录E:\lib\lib\boost_1_54_0\bin\vc11\lib
确实包含这些文件:
08/08/2013 CSer 03:48 12,738,344 libboost_unit_test_framework-vc110-mt-1
_54.lib
08/08/2013 CSer 03:44 31,489,264 libboost_unit_test_framework-vc110-mt-g
d-1_54.lib
08/08/2013 CSer 04:10 14,109,766 libboost_unit_test_framework-vc110-mt-s
-1_54.lib
08/08/2013 CSer 03:59 32,856,094 libboost_unit_test_framework-vc110-mt-s
gd-1_54.lib
Run Code Online (Sandbox Code Playgroud)
但似乎没有认识到这些.有什么问题?Traceback在这里:http://codepad.org/zgL9tpjo
项目在这里:https:
//github.com/Answeror/yapimpl
和
https://github.com/Answeror/ACMake
希望有人可以尝试cmake yapimpl
项目
Fra*_*ser 13
由于你的库名都是从头开始的lib
,所以看起来你已经构建了boost库的静态版本.该升压命名约定状态:
lib
前缀:除Microsoft Windows外,每个Boost库名称都以此字符串开头.在Windows上,只有普通的静态库使用
lib
前缀; 导入库和DLL没有.
在CMake生成的输出中,有一行指出:
-- [ F:/C++/yapimpl/acmake/FindBoost.cmake:570 ] Boost_USE_STATIC_LIBS = OFF
Run Code Online (Sandbox Code Playgroud)
此外,您可以看到CMake正在搜索的库名称不是以lib
:
... Searching for UNIT_TEST_FRAMEWORK_LIBRARY_RELEASE: boost_unit_test_framework-vc110-mt-1_54;...
Run Code Online (Sandbox Code Playgroud)
要告诉CMake搜索Boost的静态版本,您只需要设置Boost_USE_STATIC_LIBS
为ON
.您可以在调用之前在CMakeLists.txt中执行此操作find_package(Boost ...)
:
set(Boost_USE_STATIC_LIBS ON)
Run Code Online (Sandbox Code Playgroud)
或者你可以在命令行上设置它:
cmake . -DBoost_USE_STATIC_LIBS=ON
Run Code Online (Sandbox Code Playgroud)
有关FindBoost
CMake模块的更多信息,请参阅文档或运行
cmake --help-module FindBoost
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15953 次 |
最近记录: |