/usr/bin/ccache: invalid option -- 'E'

本文介绍了解决在编译包含CUDA的OpenCV时遇到的问题。主要原因是opencv编译过程中调用了ccache中错误的变量'E'。解决方法包括指定特定的系统编译器进行编译,并提供了一个cmake命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.youkuaiyun.com/u013270341/article/details/79647237

编译包含CUDA的OpenCV 时遇到问题

[  1%] Built target proto
[  1%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile.dir/layers/cuda_compile_generated_split_layer.cu.o
/usr/bin/ccache: invalid option -- 'E'
Usage:
ccache [options]
ccache compiler [compiler options]
compiler [compiler options]          (via symbolic link)

Options:
-c, --cleanup         delete old files and recalculate size counters
                      (normally not needed as this is done automatically)
-C, --clear           clear the cache completely
-F, --max-files=N     set maximum number of files in cache to N (use 0 for
                      no limit)
-M, --max-size=SIZE   set maximum size of cache to SIZE (use 0 for no
                      limit; available suffixes: G, M and K; default
                      suffix: G)
-s, --show-stats      show statistics summary
-z, --zero-stats      zero statistics counters

-h, --help            print this help text
-V, --version         print version and copyright information

See also <http://ccache.samba.org>.
CMake Error at cuda_compile_generated_split_layer.cu.o.cmake:206 (message):
Error generating
/home/gpuusr/lpq/caffe-332/build/src/caffe/CMakeFiles/cuda_compile.dir/layers/./cuda_compile_generated_split_layer.cu.o


make[2]: *** [src/caffe/CMakeFiles/cuda_compile.dir/layers/cuda_compile_generated_split_layer.cu.o] Error 1
make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2
make: *** [all] Error 2

解决方法:

主要是opencv编译调用了ccache中错误的变量’E’, 可以通过指定特定的系统编译器来编译

cmake -DCUDA_HOST_COMPILER=/usr/bin/g++ ..

有的人还说要提高Cmake的版本,这个方法无法解决的人可以尝试一下,大概的安装方法贴这了:

sudo apt-get remove cmake
chmod +x ./cmake-***.sh
sudo ./cmake-***.sh
sudo ln -sf /opt/cmake-***/bin/* /usr/local/bin
<think>首先,用户的问题是关于在Linux中安装或查找'make'工具。用户提到在尝试使用make命令时,系统提示找不到命令,这表明'make'可能未安装或不在PATH中。 从提供的引用中: - 引用[1]:用户遇到了"找不到make命令"的问题。 - 引用[2]:解释了make是一个命令,makefile是一个文件,用于自动化编译。 - 引用[3]:给出了安装make的具体步骤:下载、解压、配置、编译、安装、创建符号链接。 - 引用[4]:描述了make命令的作用,即只更新修改过的文件。 用户的需求是:如何在Linux中安装或查找make工具。所以,我需要基于这些信息构建一个清晰、结构化的回答。 回答结构: - 由于用户遇到了"找不到make命令"的错误,我应该先建议用户检查make是否已安装。 - 如果未安装,提供安装步骤。 - 如果已安装但不在PATH中,指导用户如何定位或添加路径。 - 最后,生成相关问题。 步骤: 1. **检查make是否已安装**:用户可以使用`which make`或`whereis make`命令来查找make的位置。如果返回路径,说明已安装;否则,需要安装。 2. **安装make**:参考引用[3],提供安装步骤。具体包括: - 下载make源码:`wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz` - 解压:`tar -zxvf make-4.2.tar.gz` - 进入目录:`cd make-4.2` - 配置:`./configure` - 编译:`make`(这里可能需要gcc等工具) - 安装:`make install` - 创建符号链接(可选):`ln -s -f /usr/local/bin/make /usr/bin/make` 3. **检查安装后**:安装完成后,重新运行`make`命令或检查版本`make --version`。 4. **如果已安装但找不到**:检查PATH环境变量,确保包含make的安装路径(如/usr/bin或/usr/local/bin)。 确保回答使用中文,因为系统指令要求使用中文回答。 生成相关问题: - 基于主题,可以问关于make的使用、优化、常见问题等。 - 例如: 1. 如何编写Makefile文件? 2. make命令的常见选项有哪些? 3. 如何解决make命令的错误? 引用标识:在回答中引用段落时,自然地添加引用标识,如[^1]。例如,提到安装步骤时引用[3]。 完整回答结构: - 解释问题:简述用户可能遇到的情况。 - 逐步指导: - 步骤1: 检查make是否安装。 - 步骤2: 如果未安装,提供安装方法。 - 步骤3: 如果安装后仍找不到,检查PATH。 - 结束部分:生成相关问题。</think>### 在 Linux 中安装或查找 make 工具 在 Linux 中,`make` 是一个用于自动化编译程序的命令行工具,通常与 `Makefile` 文件配合使用。当系统提示“找不到 make 命令”时,可能原因有两个:一是 `make` 未安装;二是已安装但未正确配置到 PATH 环境变量中。以下是逐步解决方案,基于 Linux 常见发行版(如 Ubuntu、CentOS)。 #### 步骤 1: 检查 make 是否已安装 首先,确认 `make` 是否存在于系统中: - 使用 `which` 命令查找路径: ```bash which make ``` 如果返回路径(如 `/usr/bin/make`),说明已安装;如果无输出,则未安装。 - 或使用 `whereis` 命令: ```bash whereis make ``` 这会显示 `make` 的可执行文件位置(如 `/usr/bin/make`)[^2]。 如果命令返回结果,但使用时仍报错,可能是 PATH 环境变量问题(见步骤 3)。否则,进入安装步骤。 #### 步骤 2: 安装 make 工具 如果未安装,需手动安装。方法取决于你的 Linux 发行版: - **对于基于 Debian/Ubuntu 的系统(使用 apt 包管理器)**: ```bash sudo apt update # 更新软件包列表 sudo apt install make # 安装 make ``` 安装后验证:`make --version`。 - **对于基于 RHEL/CentOS 的系统(使用 yum/dnf 包管理器)**: ```bash sudo yum update # 更新软件包列表(CentOS 7 及以下) sudo yum install make # 安装 make ``` 或 ```bash sudo dnf update # 更新软件包列表(CentOS 8/Fedora) sudo dnf install make # 安装 make ``` - **手动编译安装(适用于所有发行版,推荐如果包管理器失败时使用)**: 参考引用[3],下载源码编译安装: ```bash # 1. 下载 make 源码包 wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz # 2. 解压 tar -zxvf make-4.2.tar.gz # 3. 进入目录 cd make-4.2 # 4. 配置编译环境(需确保 gcc 已安装) ./configure # 5. 编译 make # 6. 安装到系统路径 sudo make install # 7. 可选:创建符号链接到标准路径(如果 /usr/local/bin 不在 PATH 中) sudo ln -s -f /usr/local/bin/make /usr/bin/make ``` 安装后,运行 `make --version` 检查是否成功[^3]。 #### 步骤 3: 解决 PATH 环境变量问题 如果 `which make` 显示路径,但命令仍无效,可能是 PATH 未包含该路径: - 检查当前 PATH: ```bash echo $PATH ``` - 如果 `make` 的路径(如 `/usr/local/bin`)未列出,手动添加: ```bash export PATH=$PATH:/usr/local/bin # 临时添加,仅当前会话有效 ``` 永久添加:编辑 `~/.bashrc` 或 `~/.bash_profile`,添加行 `export PATH=$PATH:/usr/local/bin`,然后运行 `source ~/.bashrc`[^4]。 #### 验证安装 安装或修复后,测试: ```bash make --version ``` 应输出版本信息,如 `GNU Make 4.2`。 ### 关键说明 - **为什么需要 make**:`make` 通过 `Makefile` 自动化编译过程,只更新修改过的文件,提高效率[^4]。 - **依赖工具**:手动编译安装时,需确保 `gcc` 和 `build-essential`(Ubuntu)或 `development tools`(CentOS)已安装。 - **常见问题**:如果安装失败,检查网络权限或尝试更换下载镜像(如使用 `https://ftpmirror.gnu.org/make/`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值