Linux - Ubuntu中运行编译或其他任务时提示找不到文件或程序

今天在编译Ingenic x2000(北京君正的MIPS架构芯片)的Linux BSP时,出现了个错误:
scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory
这是因为Ubuntu系统中少安装了一个package,安装一下就好了:
$sudo apt install libssl-dev
在出现这个问题之前,编译这个BSP还提示找不到gcc,没有C++11的编译选项,所以就安装了GCC和G++:
$sudo apt install gcc
$sudo apt install g++
这种情况就是,提示什么缺失,就直接按照提示进行安装即可。
一般这种情况,如果提示缺少某个命令,可以在命令行里尝试运行这个命令,如果失败,就会出现提示你要安装那个包,比如我后面操作还出现的错误,提示找不到mkimage和cmake:
make[2]: mkimage: Command not found
$ mkimage
Command 'mkimage' not found, but can be installed with:
sudo apt install u-boot-tools
$sudo apt install u-boot-tools
/bin/sh: 1: cmake: not found
$ cmake
Command 'cmake' not found, but can be installed with:
sudo apt install cmake
$ sudo apt install cmake
但能否直接找到这个命令、程序或文件是属于哪个package呢?
比如一个程序cmd_xxx:
$dpkg -S $(which cmd_xxx)
或者上面提示的找不到的头文件:
$ dpkg -S openssl/bio.h
libssl-dev:amd64: /usr/include/openssl/bio.h
也可以使用apt-file:
$sudo apt install apt-file
$sudo apt-file update
$ apt-file search /usr/include/openssl/bio.h
libssl-dev: /usr/include/openssl/bio.h    
上面apt-file命令,使用search和find都可以。
查看某个package里包含的文件,即使没有安装:
$apt-file list packagename
在之前文章也有关于包管理的说明:
dpkg -L packname
找出某个已安装包都安装了哪些文件,并给出路径。
dpkg -L apache-perl
dpkg -L perl
dpkg - c xyz.deb
dpkg --contents xyz.deb
显示出这个包中将要安装的文件,即这个包的内容。
dpkg -c dc_1.06-19_i386.deb
dpkg -S /path/to/file
找出这个文件所属的包
dpkg -S /bin/netstat
dpkg -S /sbing/ippool
还有另外一种方法, 就是在Ubuntu网站里查:
还有一些其他命令可用:
1. apt-cache
apt-cache search name
2. dpkg-query
* dpkg-query --list 'pattern*' lists all packages that have not been purged
* dpkg-query --search 'pattern*' searches for individual files installed
3. apt search
显示以安装的包:
apt search transmission | grep installed
4, 使用command_not_found_handle来查找命令。
$ command_not_found_handle cmake
Command 'cmake' is available in the following places
* /bin/cmake
* /usr/bin/cmake
cmake: command not found
因为我用的开发环境是Ubuntu 20.04,上面这些都是适用于Debian和Ubuntu环境的。
参考:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这是一个错误提示,意思是不到 cmake 命令。可能是因为您没有安装 cmake 或者 cmake 没有被正确配置到系统环境变量。您需要先安装 cmake 并将其配置到系统环境变量,才能正常使用 cmake 命令。 ### 回答2: cmake:command not found是一个常见的错误信息,在使用cmake编译工程会出现。这个错误信息的原因通常是系统没有安装cmake或者没有配置cmake所在的路径。 如果您在使用cmake遇到cmake: command not found错误,您可以尝试以下几个步骤来解决: 1.检查系统是否安装了cmake 首先您需要检查您的系统是否已经安装了cmake。可以在终端执行命令:cmake –version 来查看是否已经安装了cmake。如果没有安装cmake,您需要先安装cmake。您可以在Linux系统执行以下命令来安装cmake: $ sudo apt-get install cmake 如果您在MacOS系统运行,可以使用Homebrew来安装cmake,命令如下: $ brew install cmake 2.配置cmake所在的路径 如果您已经安装了cmake,但是系统仍然提示cmake: command not found的错误,那么是因为系统无法到cmake所在的路径。您需要配置cmake所在的路径才能解决这个问题。 您可以在Linux系统执行以下命令将cmake所在的路径添加到环境变量: $ export PATH=$PATH:/path/to/cmake/bin 如果您在MacOS系统运行,可以执行以下命令来配置cmake所在的路径: $ echo 'export PATH="/usr/local/opt/cmake/bin:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile 3.重新编译代码 如果您已经安装了cmake并且配置了cmake所在的路径,但是仍然出现cmake: command not found的错误,那么您可能需要重新编译代码。重新编译代码后,系统会自动查cmake并在编译过程使用它。 总之,cmake: command not found错误通常是由于系统没有安装cmake或者没有配置cmake所在的路径。通过安装cmake和配置其所在的路径,您就可以解决这个问题。 ### 回答3: CMake 是一个跨平台的自动化构建工具,被广泛应用于C/C++项目的构建和编译。如果在使用 CMake 进行项目构建的过程出现 "cmake: command not found" 的提示,有以下几种可能的原因和解决方案: 1. CMake 没有被正确安装。在 Linux 系统,可以通过包管理器进行安装,如在 Ubuntu 系统可以使用以下命令进行安装:sudo apt-get install cmake 。在 Windows 系统,可以从 CMake 官网下载安装程序进行安装。 2. CMake 的安装路径没有被添加到 PATH 环境变量。可以通过在终端输入以下命令检查 CMake 的安装路径:which cmake,如果没有安装路径则需要将安装路径添加到 PATH 环境变量,如在 Linux 系统可以编辑 ~/.bashrc 文件,在末尾添加:export PATH="/path/to/cmake/bin:$PATH",然后重新加载环境变量:source ~/.bashrc。 3. CMake 的版本不兼容。在使用 CMake 进行项目构建,需要使用与项目 CMakeLists.txt 文件指定的最小版本一致的 CMake 版本。可以通过在终端输入 cmake --version 查看当前安装的 CMake 版本,如果版本不一致则需要升级或降级 CMake 并重新安装。 4. CMakeLists.txt 文件存在语法错误。当 CMakeLists.txt 文件存在语法错误,CMake 无法正常执行并出现 "cmake: command not found" 的提示。可以通过使用 CMake 自带的语法检查工具进行检查,如在终端输入 cmake -C CMakeLists.txt 检查文件是否存在语法错误。 5. 配置文件不到 CMake。当使用 CMake 进行项目构建,需要先进行配置,生成 Makefile 或 Visual Studio 项目文件,然后再进行编译。如果在配置文件不到正确的 CMake 执行路径,就会出现 "cmake: command not found" 的提示。可以通过重新执行 cmake .. 进行重新配置,并检查配置文件 CMake 路径是否正确。 总之,出现 "cmake: command not found" 的提示通常是因为 CMake 没有被正确安装或配置问题。需要根据具体的情况逐一排查并解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值