CMAKE中无法链接Boost



这是我的CMakeList.text:

cmake_minimum_required(VERSION 3.12)
project(project)
set(CMAKE_CXX_STANDARD 14)
FIND_PACKAGE(Boost 1.66 REQUIRED date_time program_options thread filesystem system unit_test_framework)
IF(${Boost_FOUND})
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
ENDIF()
add_executable(project main.cpp)
target_link_libraries(project ${Boost_LIBRARIES})

它配置得很好,根据输出信息,它确实找到了提升的位置。

然而,当我试图运行我的程序时,它显示了错误:

gmake[3]: *** No rule to make target '/usr/include/_ansi.h', needed by 'CMakeFiles/project.dir/main.cpp.o'.  Stop.
gmake[2]: *** [CMakeFiles/Makefile2:76: CMakeFiles/project.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/project.dir/rule] Error 2
gmake: *** [Makefile:118: project] Error 2

其中CCD_ 1是我的CCD_ 2中的第一个头文件,boost也位于CCD_。我已经检查了该文件是否存在,如果我删除了它,它会显示no rule to make target on {the second header file}

知道怎么解决这个问题吗?

这个片段直接改编自官方文档:

find_package(Boost 1.66 REQUIRED COMPONENTS date_time program_options thread filesystem system unit_test_framework)
if (Boost_FOUND)
add_executable(pro main.cpp)
target_link_libraries(pro Boost::date_time Boost::program_options Boost::thread Boost::filesystem Boost::system Boost::unit_test_framework)
endif()

最新更新