ubuntu20.04安装OpenCV4.4.0编译时出现make: *** No targets specified and no makefile found. Stop.的解决方法

笔者安装opencv4.4.0时,看到教程上说

sudo cmake \

-D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local \

...

-D OPENCV_EXTRA_MODULES_PATH=/home/optic_css/opencv4.4.0/opencv_contrib-4.4.0/modules/ \

...

在这样进行之后当我编译

make -j8
sudo make install

会出现

make: *** No targets specified and no makefile found. Stop.

修改为

cmake \
  -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv \
  
  -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules/ \
  
  ..

之后再执行

make -j8
sudo make install

编译就成功

原因如下
OPENCV_EXTRA_MODULES_PATH=/home/optic_css/opencv- 4.4.0/opencv_contrib-4.4.0/modules/ \

就是这句,在cmake时告警找不到文件;

这句/home/optic_css这不是每个人计算机都一样,

虽然有教程说/opencv_contrib-4.4.0/modules/ 可以放在任何地方,但是cmakelist却没有很好的匹配

我们没有optic_css这个路径,所以就错了

我直接用当前路径的,上一级路../ 用相对路径绕过了这个问题

当前路径

<think>好的,我现在需要解决用户在Ubuntu 20.04中运行make时出现的错误:“No targets specified and no makefile found”。首先,我得理解这个错误的常见原因。根据经验,这类错误通常是因为缺少Makefile文件,或者编译环境配置不正确。 用户提供的引用中有提到安装依赖的问题,比如引用[2]和[3]提到了安装freetype2、gcc、zlib等库时的问题。这可能意味着用户的系统中缺少某些必要的开发工具或库,导致configure脚本未能正确生成Makefile。 首先,我应该检查用户是否执行了configure或cmake等生成Makefile的步骤。如果没有,系统自然不到Makefile,导致make失败。需要提醒用户先运行这些配置命令。 其次,如果配置步骤存在依赖项缺失,比如freetype2未安装,configure可能会失败,从而无法生成Makefile。用户引用[2]中的错误提示提到缺少freetype2,因此需要安装相应的开发包,比如libfreetype6-dev。同时,引用[3]中提到的安装gcc、zlib等也是常见的依赖项,可能需要一并检查。 另外,用户可能在自定义路径安装库,如引用[4]提到的opencv路径问题,如果项目依赖的库安装在非标准位置,可能需要设置环境变量或通过pkg-config指定路径,确保configure能到这些库。 还要考虑权限问题,比如是否有足够的权限在目标目录生成文件,或者是否在正确的目录下运行configure和make。有时候,构建目录的位置不对也会导致不到Makefile。 最后,如果用户已经正确执行了所有步骤但问题依旧,可能需要查看config.log文件中的具体错误信息,进一步诊断问题所在。或者建议用户尝试清理构建目录并重新生成Makefile,避免残留文件干扰。</think>### 分步解决方案 **Ubuntu 20.04 中 `make: *** No targets specified and no makefile found` 错误解决方案** #### 1. 确认构建流程完整性 首先检查是否执行了生成 Makefile 的配置命令。大部分开源项目需要先运行以下命令: ```bash ./configure # 传统项目常用 # 或 cmake . # CMake 项目常用 # 或 autoreconf -i # 需要重新生成配置脚本的情况 ``` 如果未执行配置步骤直接运行 `make`,系统将不到构建规则文件[^2]。 #### 2. 检查依赖完整性(关键步骤) 安装编译所需的基础开发工具链: ```bash sudo apt-get update sudo apt-get install build-essential automake autoconf libtool pkg-config ``` 根据引用[3]需要补充安装常见依赖库: ```bash sudo apt-get install zlib1g-dev libpcre3-dev libssl-dev ``` 若项目涉及图形处理(如报错提到 `freetype2`): ```bash sudo apt-get install libfreetype6-dev ``` #### 3. 处理自定义路径依赖 若项目依赖自定义安装的库(如引用[4]的 OpenCV 案例),需要通过环境变量指定路径: ```bash export PKG_CONFIG_PATH=/your/custom/path/lib/pkgconfig:$PKG_CONFIG_PATH ./configure ``` #### 4. 清理构建环境 当存在残留配置时建议: ```bash make clean # 清理旧文件 git clean -xfd # 对 Git 项目彻底清理 rm -rf CMakeFiles # CMake 项目需要删除缓存 ``` #### 5. 诊断配置错误 查看 `config.log` 文件定位具体错误: ```bash tail -n 50 config.log ``` 典型错误示例: ``` checking for FREETYPE... no configure: error: Package requirements (freetype2) were not met ``` 此时需要按步骤2补装对应开发包。 #### 6. 验证工具链 确认编译器正常工作: ```bash gcc --version make -v ``` ### 典型问题排查表 | 现象 | 解决方案 | |------|----------| | 缺少 `Makefile.in` | 运行 `autoreconf -i` | | 报错 `No package 'xxx' found` | 安装对应的 `libxxx-dev` | | 自定义库路径问题 | 设置 `PKG_CONFIG_PATH` | | 权限不足 | 使用 `sudo` 或修复目录权限 |
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值