You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么CMake已找到OpenCV但make编译时gcc找不到opencv.hpp文件

问题原因
  • 手动配置的头文件路径错误:你在.bashrc中导出的OPENCV4_INCLUDES值为/usr/local/include/,但你的OpenCV头文件实际存放在/usr/local/include/opencv4路径下,编译器在/usr/local/include/下找不到opencv2/opencv.hpp对应的文件路径
  • 错误使用自定义变量替代find_package导出的标准变量:find_package(OpenCV REQUIRED)执行成功后,OpenCV的官方CMake配置会自动导出OpenCV_INCLUDE_DIRS(正确的头文件路径)、OpenCV_LIBS(需要链接的库文件列表)两个标准变量,你不需要自行在系统环境变量中定义相关参数,你自定义的OPENCV4_INCLUDES变量本身路径错误,反而会覆盖正确路径
  • PATH环境变量仅用于系统查找可执行文件,把头文件、库文件路径加入PATH没有任何作用
  • CMakeLists.txt中target_link_libraries为空,即使头文件问题解决,后续链接阶段也会报错
解决方案
  1. 先删除.bashrc中你手动添加的4行OpenCV相关环境变量配置,执行source ~/.bashrc让配置生效
  2. 替换你的CMakeLists.txt内容为以下内容:
cmake_minimum_required(VERSION 3.0)
project(cpp_proj)

find_package(OpenCV REQUIRED)

add_executable(cpp_proj opencv_cpp.cpp)

# 直接使用find_package导出的正确头文件路径
include_directories(${OpenCV_INCLUDE_DIRS})
# 链接OpenCV对应的库文件
target_link_libraries(cpp_proj ${OpenCV_LIBS})
  1. 清空build目录下的所有旧缓存文件,重新执行cmake .. && make即可正常编译

内容的提问来源于stack exchange,提问作者crackanddie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:24:03