我有一个程序可以在 Red Hat 64 位 Linux 上用 gcc 编译良好。我运行它,它完美地制作了一个共享对象文件:
gcc -ansi -std=c++11-shared -fPIC...etc
Run Code Online (Sandbox Code Playgroud)
我正在尝试在同一台机器上交叉编译 64 位 ARM (AARCH64)。
我安装了交叉编译工具:
sudo yum install gcc-aarch64-linux-gnu
sudo yum install gcc-c++-aarch64-linux-gnu
Run Code Online (Sandbox Code Playgroud)
但是,当我运行运行良好的相同命令时,只需运行
aarch64-linux-gnu-gcc -ansi -std=c++11 -shared -fPIC...etc
Run Code Online (Sandbox Code Playgroud)
它收到错误并且不构建:
fatal error: dlfcn.h: No such file or directory
#include <dlfcn.h>
Run Code Online (Sandbox Code Playgroud)
如果我注释掉它,它会命中 cstddef.h 的下一个包含未找到致命错误等
我该如何进行这项工作?
小智 0
我曾经遇到过类似的问题一段时间,不幸的是我了解到在 RedHat 上开发并不像在 Debian 上那么容易(至少对我来说)。最后,我成功安装了 aarch64 的交叉编译工具链,现在我正在使用它。我使用的 redHat 版本是:Red Hat Enterprise Linux Server release 7.9 (Maipo),我为此版本下载了以下软件包。
然后使用命令“”按顺序安装软件包rpm -Uvh <package_name>.rpm(您很可能需要 sudo)。
如果一切顺利,您可以尝试命令“aarch64-linux-gnu-gcc -v”来显示aarch64 gcc的版本。
| 归档时间: |
|
| 查看次数: |
3657 次 |
| 最近记录: |