这是一个常见问题,但我的情况是,我已经安装了(我相信它已经安装了!)gcc arm 编译器,但我在系统中找不到它。我尝试了下面的命令,但它几乎返回任何内容。
$sudo find . -print | grep -i '.*[arm]'
我相信我正在寻找的文件名称中可能包含以下子句:
gcc, arm, eabi, 4.8, ....
最佳搜索词是什么?
答案1
您可以使用-name
或-iname
开关来find
代替grep
pingfind
的输出;您也可以将搜索范围缩小到文件,如果您不知道它可能安装在哪里,那么您最好在/
而不是在当前工作目录中进行搜索:
sudo find / -type f -name "*gcc*" -o -name "*arm*" -o -name "*eabi*" -o -name "*4.8*"
按照你的评论,您使用 PPA 安装了它,因此如果可执行文件已添加到您的路径中,您应该能够通过运行来确定它的位置which arm-none-eabi-gcc
;如果没有,运行sudo find / -type f -name "*arm-none-eabi-gcc*"
,它应该能够找到它。
答案2
我安装了该软件包并运行: 。结果是一个文件列表,其中最相关的是所有以 开头的dpkg-query -L gcc-arm-none-eabi
文件数。我认为这些就是您要查找的文件。/usr/bin/
arm-none-eabi
$ls /usr/bin/arm-none-eabi*
/usr/bin/arm-none-eabi-addr2line /usr/bin/arm-none-eabi-gcov
/usr/bin/arm-none-eabi-ar /usr/bin/arm-none-eabi-gdb
/usr/bin/arm-none-eabi-as /usr/bin/arm-none-eabi-gprof
/usr/bin/arm-none-eabi-c++ /usr/bin/arm-none-eabi-ld
/usr/bin/arm-none-eabi-c++filt /usr/bin/arm-none-eabi-ld.bfd
/usr/bin/arm-none-eabi-cpp /usr/bin/arm-none-eabi-nm
/usr/bin/arm-none-eabi-elfedit /usr/bin/arm-none-eabi-objcopy
/usr/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-objdump
/usr/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-ranlib
/usr/bin/arm-none-eabi-gcc-4.9.3 /usr/bin/arm-none-eabi-readelf
/usr/bin/arm-none-eabi-gcc-ar /usr/bin/arm-none-eabi-size
/usr/bin/arm-none-eabi-gcc-nm /usr/bin/arm-none-eabi-strings
/usr/bin/arm-none-eabi-gcc-ranlib /usr/bin/arm-none-eabi-strip
答案3
该find
命令应该可以工作:
find . -executable -type f -regex '.*\/[^\/]*\(gcc\|arm\|eabi\|4\.8\)[^\/]*'
解释:
-executable
:仅匹配设置了可执行位的文件。-type f
:仅匹配常规文件。-regex ...
:搜索正则表达式。您只需要基本名称,而不是整个部分,因此我们必须排除/
至少一个斜杠后面的斜杠 ( )。