在Windows上增加安装,缺少库

时间:2014-04-24 07:48:02

标签: boost installation cmake

我正在努力建立提升。我跟着instructions here。我创建了一个包含include和libs的文件夹C:\ Boost,我将它添加到我的环境路径中。但是,当我尝试使用cMake构建另一个项目时,我得到了:

  CMake Error at C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1106 (message):
  Unable to find the requested Boost libraries.
  Boost version: 1.55.0

  Boost include path: C:/Boost/include/boost-1_55

  The following Boost libraries could not be found:

      boost_system
      boost_filesystem
      boost_signals

 No Boost libraries were found.  You may need to set BOOST_LIBRARYDIR to the
directory containing Boost libraries or BOOST_ROOT to the location of
Boost.
Call Stack (most recent call first):
CMakeLists.txt:88 (find_package)

关于那些缺少libs的任何想法?

1 个答案:

答案 0 :(得分:1)

用问题开始回答是件坏事,但我仍然这样做:

  • 首先,我是否正确地假设您已设置指向C:\ Boost的环境变量BOOST_ROOT? (简单地将它添加到路径可能不够。)
  • 其次,你在运行哪个CMake发生器? Visual Studio,Makefile,忍者?

我最近遇到了一个与我实际使用的发电机相连的类似问题。更确切地说,我试图在cmake-gui内创建一个Ninja项目,并得到几乎相同的错误信息。但是,我能够在cmake-gui项目中创建一个没有问题的Visual Studio项目。

当仔细观察Ninja案例的命令输出时,我在一开始就发现了以下两行:

The C compiler identification is unknown
The CXX compiler identification is unknown

这暗示了实际问题。虽然很明显哪个编译器将用于Visual Studio(9,10,11,...),但cmake无法推断出Ninja的默认编译器,因为它是一个使用不同编译器运行的通用构建系统。最后,由于编译器未知,因此未找到提升。

一个简单的解决方案是打开要运行的Visual Studio版本的Developer Command Prompt。当你在这个"扩展"中创建项目时命令提示符CMake将能够推断出正确的编译器。或者,您可以在运行cmake时设置CMAKE_CXX_COMPILER和CMAKE_C_COMPILER标志。

cmake -G "Ninja" <path/to/CMakeLists.txt>
cmake -G "Ninja" <path/to/CMakeLists.txt> -DCMAKE_CXX_COMPILER="path/to/cxx/compiler" -CMAKE_C_COMPILER="path/to/c/compiler"

希望这有帮助!