为 ARM 交叉编译 ncurses 应用程序 linux

Cross Compile ncurses application for ARM linux

我想从我的工作站(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. It comes with a pre-built libraries, including ncurses. The download page is here. If you grab e.g. 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

它创建一个静态二进制文件,因此您不必担心共享库版本。