我想从我的工作站(x86、linux)为 ARM 应用处理器交叉编译应用程序。首先,我为我的系统构建:
gcc -static -g -Wall -c main.c -o main.o
gcc -g -Wall main.o -o myApplication -lncurses
这个构建就像我想要的那样,也可以工作。如果我想为 arm 构建这个
arm-linux-gnueabi-gcc -static -g -Wall -c main.c -o main.o
arm-linux-gnueabi-gcc -g -Wall main.o -o myApplication -lncurses
但这不会编译。
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find -lncurses
collect2: Error
那么:如何通过这种方式交叉编译一个ncurses应用程序呢?
最佳答案
一个简单的方法是下载 ELLCC 的二进制版本.它带有一个预构建的库,包括 ncurses。下载页面为here .如果你捕获例如http://ellcc.org/releases/ellcc-x86_64-linux-eng-0.1.27.tgz (版本号会随着时间变化),解压即可。对于 ARM,您的构建线如下所示:
~/ellcc/bin/ecc -target arm-linux-engeabihf -g -Wall -c main.c -o main.o
~/ellcc/bin/ecc -target arm-linux-engeabihf -g -Wall main.o -o myApplication -lncurses
它创建一个静态二进制文件,因此您不必担心共享库版本。
关于linux - 为 ARM linux 交叉编译 ncurses 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34807635/