我正在努力建立提升。我跟着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的任何想法?
答案 0 :(得分:1)
用问题开始回答是件坏事,但我仍然这样做:
我最近遇到了一个与我实际使用的发电机相连的类似问题。更确切地说,我试图在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"
希望这有帮助!