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

时间:2014-05-29 03:39:33

标签: c++ boost cmake cygwin cpp-netlib

我正在尝试使用来自cygwin的cmake构建cpp-netlib。 但是cmake尝试找到没有lib前缀的包。 -DBoost_USE_STATIC_LIBS=ON无法解决问题!

这是我的命令行:

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

搜索:

-- [ /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

正如您在命令行中看到的,我正在使用cpp-netlib 0.9.4和Boost 1.55.0。

任何提示?

谢谢!

1 个答案:

答案 0 :(得分:1)

看起来您的Boost库是使用指定为编译器的MSVC构建的(" -vc120 - "在其名称中是告密者)。使用Cygwin,您需要为Unix变体构建。

来自Boost' build instructions for Windows顶部的说明:

  

Cygwin和MinGW用户的说明

     

如果您打算在Windows命令提示符下使用您的工具,那么您就在正确的位置。如果您打算使用Cygwin bash shell进行构建,那么您实际上是在POSIX平台上运行,并且应该遵循getting started on Unix variants的说明。不支持其他命令shell,例如MinGW的MSYS,它们可能会也可能不起作用。

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

  

- [/usr/share/cmake-2.8.11.2/Modules/FindBoost.cmake:739]猜到_boost_COMPILER = -gcc48