Я на x86 пытаюсь перекрестно скомпилировать экономную программу apache, написанную на C++ для armhf. Я установил gcc-arm-linux-gnueabihf
и g++-arm-linux-gnueabihf
через apt-get
, но когда я использую их для компиляции моей программы, я получаю
skipping incompatible /usr/local/lib/libthrift.so when searching for -lthrift
поэтому я попытался настроить thrift для компиляции libthrift.so, совместимого с armhf, с помощью этого руководства, поэтому в bash:
./configure CXX=arm-linux-gnueabihf-g++ CC=arm-linux-gnueabihf-gcc --prefix=/BBB/thrift --host=arm-linux-gnueabihf --with-cpp CFLAGS="-g -O2 -I$DIR/include" LDFLAGS="-L$DIR/lib
но потом я получил:
checking for libevent >= 1.0... configure: error: in 'home/xic/thrift-0.9.0': configure: error: cannot run test program while cross compiling
поэтому я успешно скомпилировал libevent, но это все равно не сработало. Глядя в экономию config.log
, я вижу
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lfl
collect2: ld returned 1 exit status
поэтому, видимо, мне также нужно кросс-компилировать flex. Действительно ли это лучший способ сделать это, или есть более быстрые/простые способы?
пс. Я делаю кросс-компиляцию для Beaglebone Black, который использует armhf.