首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建cpp-netlib失败-不添加lib前缀

构建cpp-netlib失败-不添加lib前缀
EN

Stack Overflow用户
提问于 2014-05-29 03:39:32
回答 1查看 229关注 0票数 1

我试着用cygwin的cmake构建。但是,cmake尝试在没有lib前缀的情况下找到包。-DBoost_USE_STATIC_LIBS=ON也解决不了这个问题!

这是我的命令行:

代码语言:javascript
复制
cmake ../cpp-netlib-0.9.4/ -DBOOST_ROOT:string=/cygdrive/c/Dev/boost_1_55_0 -DBoost_USE_STATIC_LIBS=ON -DBoost_DEBUG=ON -DBoost_DETAILED_FAILURE_MSG=ON

搜寻:

代码语言:javascript
复制
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:930 ] Searching for THREAD_LIBRARY_RELEASE: boost_thread-gcc48-mt-1_55;boost_thread-gcc48-mt;boost_thread-mt-1_55;boost_thread-mt;boost_thread
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:966 ] Searching for THREAD_LIBRARY_DEBUG: boost_thread-gcc48-mt-d-1_55;boost_thread-gcc48-mt-d;boost_thread-mt-d-1_55;boost_thread-mt-d;boost_thread-mt;boost_thread
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:930 ] Searching for FILESYSTEM_LIBRARY_RELEASE: boost_filesystem-gcc48-mt-1_55;boost_filesystem-gcc48-mt;boost_filesystem-mt-1_55;boost_filesystem-mt;boost_filesystem
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:966 ] Searching for FILESYSTEM_LIBRARY_DEBUG: boost_filesystem-gcc48-mt-d-1_55;boost_filesystem-gcc48-mt-d;boost_filesystem-mt-d-1_55;boost_filesystem-mt-d;boost_filesystem-mt;boost_filesystem
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:930 ] Searching for PROGRAM_OPTIONS_LIBRARY_RELEASE: boost_program_options-gcc48-mt-1_55;boost_program_options-gcc48-mt;boost_program_options-mt-1_55;boost_program_options-mt;boost_program_options
-- [ /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:966 ] Searching for PROGRAM_OPTIONS_LIBRARY_DEBUG: boost_program_options-gcc48-mt-d-1_55;boost_program_options-gcc48-mt-d;boost_program_options-mt-d-1_55;boost_program_options-mt-d;boost_program_options-mt;boost_program_options

以下是完整的结果:http://pastebin.com/ZBfQyWvw

正如您在命令行中看到的那样,我使用的是0.9.4和Boost 1.55.0。

有什么暗示吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-29 12:28:29

看起来,您的Boost库是用MSVC指定的编译器构建的(它们的名字中的“- in 120-”是说明性的)。使用Cygwin,您需要构建Unix变体。

从Boost's Windows编译说明顶部的便条

给Cygwin和MinGW用户的说明 如果您计划从Windows命令提示符中使用您的工具,那么您的位置是正确的。如果您计划从Cygwin构建,那么您实际上是在POSIX平台上运行,并且应该遵循开始使用Unix变体的说明。其他命令外壳(如MinGW的MSYS )不受支持--它们可能工作,也可能不起作用。

您可以看到,CMake的FindBoost模块正在做正确的事情;猜测编译器是GCC。例如,链接CMake输出的第62行是:

-- /usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:739猜测的_boost_COMPILER = -gcc48

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23925342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档