[英]Fail to Link Boost in CMAKE
這是我的 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})
它配置良好,根據 output 信息,它確實找到了提升的位置。
但是,當我嘗試運行我的程序時,它顯示錯誤:
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
其中_ansi.h
是我/usr/include/
中的第一個 header 文件,boost 也位於/usr/include/boost
。 我檢查了該文件是否存在,如果我刪除它,它會說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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.