我有一个基于 GTK 的 ARM 项目,该项目历史上是在 32 位 Ubuntu 虚拟机上开发的。目前,我正在尝试将其迁移到一个新的 64 位 Arch Linux 开发盒。我不确定如何处理我采取的两条路线产生的错误。
如果我告诉链接器使用 /usr/lib 编译将停止告诉我
/usr/lib/librt.so: file not recognized: File format not recognized
因此,假设这是一个 32 位与 64 位的问题,我将 gcc 指向 /usr/lib32 并收到以下内容
/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/librt.so when searching for -lrt
/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/librt.a when searching for -lrt
/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/libpthread.so when searching for -lpthread
/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/libpthread.a when searching for -lpthread
/usr/bin/arm-linux-gnueabi - ld: cannot find -lz
/usr/bin/arm-linux-gnueabi - ld: cannot find -lsqlite3
/usr/bin/arm-linux-gnueabi - ld: cannot find -lusb-1.0
/usr/bin/arm-linux-gnueabi - ld: cannot find -lssl
等等。我尝试从 Arch 存储库安装 lib32-sqlite 无济于事。
对于任何一个目录,我都会多次收到以下警告,我也不确定
/usr/include/pthread.h:672:6: warning: '__regparm__' attribute directive ignored [-Wattributes]
/usr/include/pthread.h:684:3: warning: '__regparm__' attribute directive ignored [-Wattributes]
/usr/include/pthread.h:729:6: warning: '__regparm__' attribute directive ignored [-Wattributes]
我不确定这是否只是针对最新库编译的过时代码的工件或其他东西,但这是我想在不久之后解决的问题。
编辑:我的目标架构是 ARM926EJ-S / i.MX27