C++ 找不到Boost(缺少:文件系统)(找到版本“1.64.0”)
这在我的C++ 找不到Boost(缺少:文件系统)(找到版本“1.64.0”),c++,windows,boost,cmake,C++,Windows,Boost,Cmake,这在我的CMakeLists.txt中: cmake_minimum_required(VERSION 3.1.0) project(myProject) set(EXECUTABLE_OUTPUT_PATH ./bin/${CMAKE_BUILD_TYPE}) find_package(Boost REQUIRED COMPONENTS filesystem) 我从源代码处编译了Boost1.64.0。Boost编译成功,Boost安装目录中存在文件系统头。然后我将Boost\u IN
CMakeLists.txt
中:
cmake_minimum_required(VERSION 3.1.0)
project(myProject)
set(EXECUTABLE_OUTPUT_PATH ./bin/${CMAKE_BUILD_TYPE})
find_package(Boost REQUIRED COMPONENTS filesystem)
我从源代码处编译了Boost1.64.0。Boost编译成功,Boost安装目录中存在文件系统
头。然后我将Boost\u INCLUDE\u DIR
指向它的基本文件夹(其中包含bootstrap
和b2.exe
)
我得到这个CMake输出:
CMake Error at C:/Program Files/CMake/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find Boost (missing: filesystem) (found version "1.64.0")
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.18/Modules/FindBoost.cmake:2177 (find_package_handle_standard_args)
CMakeLists.txt:9 (find_package)
Configuring incomplete, errors occurred!
这是什么意思?CMake怎么能找到1.64.0版而不是Boost?它找到的是标题,而不是libs。您是安装了Boost还是只编译了Boost?许多Boost库都只是头文件,而文件系统不是头文件。有一个为它建造的图书馆。我相信
Boost\u INCLUDE\u DIR
不会帮助您找到二进制文件。您需要设置BOOST\u ROOT
或BOOST\u DIR
@rustyx我编译了它并将其移动到C:\Program Files\BOOST
。我不知道你所说的“安装”是什么意思,只是说明了如何编译。@drescherjm我将BOOST\u ROOT
和BOOST\u DIR
都设置到BOOST的目录中,这并没有改变错误。我也有同样的问题,我设置了BOOST\u ROOT、BOOST\u INCLUDE\u DIR和BOOST\u LIBRARY\u DIR,但它仍然不起作用。我在上面问了这个问题,找到了标题,但没有找到libs。您是安装了Boost还是只编译了Boost?许多Boost库都只是头文件,而文件系统不是头文件。有一个为它建造的图书馆。我相信Boost\u INCLUDE\u DIR
不会帮助您找到二进制文件。您需要设置BOOST\u ROOT
或BOOST\u DIR
@rustyx我编译了它并将其移动到C:\Program Files\BOOST
。我不知道你所说的“安装”是什么意思,只是说明了如何编译。@drescherjm我将BOOST\u ROOT
和BOOST\u DIR
都设置到BOOST的目录中,这并没有改变错误。我也有同样的问题,我设置了BOOST\u ROOT、BOOST\u INCLUDE\u DIR和BOOST\u LIBRARY\u DIR,但它仍然不起作用。我把问题问了一遍