首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CMake include_directories不帮助查找头文件

CMake是一个跨平台的开源构建工具,用于管理软件构建过程。在CMake中,include_directories函数用于指定头文件的搜索路径。然而,include_directories函数并不会帮助查找头文件,它只是告诉编译器在哪些目录中搜索头文件。

要解决头文件查找的问题,可以使用以下方法:

  1. 使用find_package命令:find_package命令用于查找和加载外部库或工具包。通过指定合适的参数,可以让CMake自动查找并加载所需的头文件。例如,对于常用的库,可以使用find_package命令来查找并加载。
  2. 使用target_include_directories命令:target_include_directories命令用于为特定的目标(target)指定头文件的搜索路径。通过将头文件路径添加到目标的包含目录中,可以确保编译器能够找到所需的头文件。
  3. 使用绝对路径或相对路径:如果头文件位于已知的绝对路径或相对路径下,可以直接在CMakeLists.txt文件中使用绝对路径或相对路径来指定头文件的位置。

总结起来,CMake的include_directories函数只是告诉编译器在哪些目录中搜索头文件,而不会帮助查找头文件。要解决头文件查找的问题,可以使用find_package命令、target_include_directories命令或直接指定绝对路径或相对路径。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

cmake 添加头文件目录,链接动态、静态库

cmake 添加头文件目录,链接动态、静态库 cmake 添加头文件目录,链接动态、静态库 1. 添加头文件目录INCLUDE_DIRECTORIES 2....cmake 添加头文件目录,链接动态、静态库 罗列一下cmake常用的命令。 CMake支持大写、小写、混合大小写的命令。 1....添加头文件目录INCLUDE_DIRECTORIES 语法: include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])...不熟悉的命令可以去查找文档,贴个目前最新的cmake3.19官方帮助文档地址 https://cmake.org/cmake/help/v3.19/index.html 参考资料 cmake 添加头文件目录...,链接动态、静态库 cmake 链接动态链接库 cmake 3.19官网帮助文档 Getting started with cmake CMake projects in Visual Studio Configure

24.3K11

cmake Tips

结合最近cmake的运用,对cmake的使用做简要总结。主要是关键词,编译思路的理解。 1. cmake编译源码生成可执行文件 思路: (1) 添加第三方库,链接对应头文件。...(${OpenCV_INCLUDE_DIRS}) #最后表示把链接对应的头文件 (2)查找本项目头文件:注意如果头文件包含二级目录,应记得把所有头文件包进来 set(EPCV_INCLUDES ${PROJECT_SOURCE_DIR.../include/epcv_engine) include_directories(${EPCV_INCLUDES}) (3) 查找源文件:注意如果头文件包含二级目录,应记得把所有头文件包进来 #找到src...链接动态库生成可执行文件 思路: (1) 添加第三方库,链接对应头文件(同上) (2)查找本项目头文件(同上) (3) 查找已经编译生成的库文件(这里相当于用库文件代替源码) file(GLOB TRAFFIC_LIBS...将源文件编译成动态库 (1) 添加第三方库,链接对应头文件(同上) (2)查找本项目头文件(同上) (3)设置生成库的输出路径 set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR

88800
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法

    从错误信息可以看出找不到Boost库的头文件所在路径,于是我查看了一下muduo源代码根目录下的CMakeLists.txt文件: cmake_minimum_required(VERSION 2.6)...(${Boost_INCLUDE_DIRS}) include_directories(${PROJECT_SOURCE_DIR}) string(TOUPPER ${CMAKE_BUILD_TYPE...所以解决办法很明了了,既然muduo库找不到我安装的boost1.69.0的头文件所在目录,那么我修改一下CMakeLists.txt文件,在find_package(Boost REQUIRED)这句查找...Boost库之前,手动设置boost根目录、头文件、lib库文件所在目录就好了即: 可以在搜索package之前,通过设置一些变量来帮助boost库的查找 BOOST_ROOT...(${Boost_INCLUDE_DIRS}) endif() include_directories(${PROJECT_SOURCE_DIR}) string(TOUPPER ${CMAKE_BUILD_TYPE

    1.8K20

    CMake用法,这篇文章讲全了

    (VERSION 3.10) # 设置cmake的最低版本要求为3.10 project(MultiFileExample) # 设置项目名称 # 在当前目录中查找源文件,并将它们添加到SOURCES...(VERSION 3.10) # 设置cmake的最低版本要求为3.10 project(funclib) # 设置项目名称 # 递归查找source子目录下的所有.cpp文件, # 并将它们添加到...(VERSION 3.10) # 设置cmake的最低版本要求为3.10 project(BirdEngine) # 设置项目名称 # 添加第三方库的头文件路径 include_directories...(VERSION 3.10) project(BirdEngineTest) # 添加第三方库的头文件路径 include_directories(${CMAKE_SOURCE_DIR}/third_party.../include) # 添加第三方库的库文件路径 link_directories(${CMAKE_SOURCE_DIR}/third_party/lib) # 递归查找source子目录下的所有

    10010

    CMake结合Visual Studio中开发Qt应用程序注意事项

    EXTERNAL LIBS FIND_PACKAGE(Qt5 COMPONENTS Core Widgets Gui REQUIRED) qt5_wrap_ui(UI_HEADERS ${FORMS}) INCLUDE_DIRECTORIES...-5/ qt5_use_modules(${PROJECT_NAME} Core Widgets Gui) 其中,有一点要注意的是“INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR...这一行是为了包含UI生成的头文件,否则在编译的时候无法找到UI头文件会报错。 备注 使用CMake生成Qt工程,编译运行的时候需要注意一些事情。...如果机器上装了多个版本的Qt库的话,使用CMake生成Qt工程的时候,最容易出错了。CMake在生成工程的时候,会去搜索用户和系统的Path路径,查找系统上安装的Qt库。...像我碰到的一些情况包括:(1)程序启动起来或者报错“xxx找不到符号入口点”;(2)资源加载不到,典型的特征是使用QRC路径(如“:/style/default.qss”)来加载资源会失败;(3)程序无故崩溃或执行结果不正常

    2.8K20

    【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )

    头文件查找路径设置 : 使用 include_directories 指定 FFMPEG 头文件查找目录 , CMAKE_SOURCE_DIR 指的是当前的文件地址 ; # IV ....指定 FFMPEG 头文件查找目录 # CMAKE_SOURCE_DIR 指的是当前的文件地址 include_directories(${CMAKE_SOURCE_DIR}/include...C+= 参数给编译器时 , 在 该参数后面指定库的路径 # CMAKE_SOURCE_DIR 指的是当前的文件地址 # -L 参数指定动态库的查找路径 set(CMAKE_CXX_FLAGS...指定 FFMPEG 头文件查找目录 # CMAKE_SOURCE_DIR 指的是当前的文件地址 include_directories(${CMAKE_SOURCE_DIR}/include...C+= 参数给编译器时 , 在 该参数后面指定库的路径 # CMAKE_SOURCE_DIR 指的是当前的文件地址 # -L 参数指定动态库的查找路径 set(CMAKE_CXX_FLAGS

    2.3K30

    深入浅出CMake(三):find_package 添加依赖库

    package 在 cmake 的编译体系中,package 用来指代一个依赖库,包括一些头文件、动态库、静态库等等,在 CMakeFileLists.txt 中通过 find_package()命令可以很轻易实现...比如很多同学可能会用 OpenCV 进行图像开发,它是个非常有名的开源库,它有 10 来个库文件、几十个头文件,因此如何正确引用它就是一件值得小心翼翼的事情,但好在 cmake 可以轻松搞定这件事情。...package 的通用套路 实际上,通过 find_package() 可以顺利查找任何符合 cmake package 标准的外部工程。...XXX_FOUND 代表库是否查找成功 XXX_INCLUDE_DIRS 代表头文件的路径 XXX_LIBRARIES 代表库文件的路径 比如,cmake 可以很轻松引入 bzip2 find_package...(BZip2) if (BZIP2_FOUND) include_directories(${BZIP_INCLUDE_DIRS}) target_link_libraries (test

    11.4K41

    【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库头文件到 Android 工程中 | 配置 CMakeLists.txt 构建脚本 )

    以上的系统中 , 出现找不到路径的问题 ; 只能使用给 gcc / g++ 设置动态库查找路径参数的方式 , 指定动态库的查找路径 ; 使用 set() , 指定一个 CMAKE_CXX_FLAGS...-L 参数指定动态库的查找路径 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/...../jniLibs/${ANDROID_ABI}") 2、导入头文件 导入头文件 : 使用 include_directories 设置头文件查找路径 ; # 设置头文件查找路径 include_directories...# CMAKE_SOURCE_DIR 指的是当前的文件地址 # -L 参数指定动态库的查找路径 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR.../jniLibs/${ANDROID_ABI}") # 设置头文件查找路径 include_directories( lib7zr/CPP/7zip/Archive lib7zr

    2.8K20

    【Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用预构建的二进制库和头文件 | 编译 Oboe 源码 )

    " } } } } 在 CMakeLists.txt 中进行如下配置 : find_package (oboe REQUIRED CONFIG) # 查找.../oboe) ② 将 Oboe 源码目录设置为工程的子路径 : add_subdirectory 告诉 CMake 到 OBOE_DIR 路径中查找该路径下的 CMakeLists.txt 构建脚本 ,.../oboe) ③ 指定 Oboe 源码的头文件路径 : 允许本次 CMake 编译的目标库中可以包含 Oboe 源码头文件 , 进而访问 Oboe API ; include_directories (...将 Oboe 源码目录设置为工程的子路径 , # add_subdirectory 告诉 CMake 到 OBOE_DIR 路径中查找该路径下的 CMakeLists.txt 构建脚本 , # 编译该构建脚本中指定的源码...指定 Oboe 源码的头文件路径 # 允许本次 CMake 编译的目标库中可以包含 Oboe 源码头文件 , 进而访问 Oboe API include_directories (${OBOE_DIR

    1K00

    如何对 Neuron 源码进行交叉编译

    本文将详细介绍使用 Neuron 源码进行交叉编译的操作步骤,帮助用户更好地利用 Neuron 进行进一步的工业物联网业务开发。...})include_directories(SYSTEM ${CMAKE_STAGING_PREFIX}/include)include_directories(SYSTEM ${CMAKE_STAGING_PREFIX...NEVER)# 只在指定目录下查找库文件set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)# 只在指定目录下查头文件set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE...参数选择依赖库文件查找的位置,该参数在 .cmake 文件中配置if (CMAKE_STAGING_PREFIX) # 当进行交叉编译时,指定头文件的搜索路径 include_directories...) # 当不进行交叉编译时,指定头文件的搜索路径 include_directories(/usr/local/include) link_directories(/usr/local/lib)endif

    1.1K50

    opencv recipe for target all failed解决

    本文将帮助你解决这个问题并继续进行你的OpenCV项目。1. 检查环境设置首先,确保你的环境已经正确设置并安装了必要的依赖。OpenCV的编译和安装需要一些外部库和工具,如CMake、GCC等。...CMake配置是指在使用CMake生成构建文件时所需的设置和参数。通过CMake配置,可以指定项目的构建选项、依赖库、头文件路径、库文件路径等信息。...然后,使用​​find_package​​命令查找OpenCV库,并通过​​target_link_libraries​​将其链接到生成的可执行文件上。...使用​​include_directories​​命令添加OpenCV的头文件路径。 最后,通过运行​​cmake​​命令生成构建系统所需的构建文件(如Makefile)。...这些配置包括但不限于编译器选项、库依赖、自定义的构建选项等,帮助我们更方便地管理和构建项目,同时保持跨平台的兼容性和一致性。

    70020

    Android NDK 开发 | CMake 使用手册 - 初见篇

    cmake_minimum_required(VERSION 3.16) project(cmake_test) set(CMAKE_CXX_STANDARD 17) # 头文件搜索路径 include_directories...也就是说在在通过 include_directories 包含头文件之后,add_executable 中只需要记录实现文件即可。...链接库的构建与集成 Android 的朋友应该对 so 动态链接库并不陌生,windows 的朋友对 dll 动态链接库也陌生。其实两者本质上是类似的,只是在不同平台构建的产物不同罢了。...---- 集成一个三方的动态链接库,只需在 CMakeLists.txt 中办三件事: include_directories : 搜索引入对应的头文件 link_libraries : 搜索对应的链接库...cmake_minimum_required(VERSION 3.16) project(cmake_test) set(CMAKE_CXX_STANDARD 17) # 头文件搜索路径 include_directories

    1.1K20
    领券