C++ CMake:包含外部库标题
我有这个片段,它工作得很好:C++ CMake:包含外部库标题,c++,qt,cmake,C++,Qt,Cmake,我有这个片段,它工作得很好: find_package(Qt5 COMPONENTS Core REQUIRED) target_link_libraries( myproj Qt5::Core ) target_include_directories( myproj PRIVATE ${Qt5Core_INCLUDE_DIRS} ) 因为我想用。现在我运行find_library(LIB_qwt qwt)并轻松获得的路径。但是如何获取标题路径并将其添加到目标\u include\u目录()
find_package(Qt5 COMPONENTS Core REQUIRED)
target_link_libraries( myproj Qt5::Core )
target_include_directories( myproj PRIVATE ${Qt5Core_INCLUDE_DIRS} )
因为我想用。现在我运行find_library(LIB_qwt qwt)
并轻松获得的路径。但是如何获取标题路径并将其添加到目标\u include\u目录()
我真的需要手动包含Qt吗?如果我没有(但我以一种丑陋的方式包含了Qwt文件),Qwt的头会因为没有发现Qt而中断编译
这是我的Qwt安装:libqwt-qt5-dev
您应该能够在查找库(LIB\u Qwt Qwt)之后添加${LIB\u INCLUDE\u DIR}
或${Qwt INCLUDE\u DIR}
到目标目录
。您必须手动包含Qt
如果这不起作用,您可以自己搜索路径,您可以使用find\u path
如下:
find_path(QWT_INCLUDE_DIR qwt.h)
target_include_directories( myproj PRIVATE ${Qt5Core_INCLUDE_DIRS} ${QWT_INCLUDE_DIR})
qwt.h
显然必须在路径上的某个地方。我将使用此文件并执行以下操作:target\u link\u库(myproj PRIVATE Qt5::core qwt::qwt)
。而且您不需要执行target\u include\u目录(…)
,因为include目录是在Qt5::core
目标中声明的。@kanstar在复制中使用将其粘贴到我的项目中?通常您会将该文件包含到您的项目中。将该文件添加到项目树中的目录中,例如cmake/Modules
,并将该路径添加到主CMakeLists.txt
中的cmake\u模块路径中,如列表(追加cmake\u模块路径“${cmake\u CURRENT\u list\u DIR}/cmake/Modules”)
。当然,您必须首先执行查找包(Qwt)
在使用target\u link\u库(…)
@kanstar之前,它使用了类似的cmake。