我有一个在红帽64位Linux上用gcc编译的程序。我运行它,它可以很好地创建一个共享目标文件:
gcc -ansi -std=c++11-shared -fPIC...etc
字符串
我试图在同一台机器上交叉编译64位ARM(AARCH64)。
我安装了交叉编译工具:
sudo yum install gcc-aarch64-linux-gnu
sudo yum install gcc-c++-aarch64-linux-gnu
型
然而,当我运行同样的命令,工作正常,只是运行作为
aarch64-linux-gnu-gcc -ansi -std=c++11 -shared -fPIC...etc
型
它会得到错误,但不会构建:
fatal error: dlfcn.h: No such file or directory
#include <dlfcn.h>
型
如果我将其注解掉,它会遇到cstddef. h fatal error not found等的下一个包含项
我该怎么做?
1条答案
按热度按时间rqqzpn5f1#
我曾经遇到过类似的问题,不幸的是,我了解到在RedHat上开发并不像在Debian上那么容易(至少对我来说是这样)。最后,我设法安装了一个aarch 64的交叉编译工具链,我现在正在使用它。我使用的redHat版本是:* Red Hat Enterprise Linux Server release 7.9(Maipo)*,我下载了这个版本的以下软件包。
然后使用命令“
rpm -Uvh <package_name>.rpm
“按顺序安装软件包(您很可能需要sudo)。如果一切顺利,您可以尝试命令“aarch 64-linux-gnu-gcc -v”来显示aarch 64 gcc的版本。