Ubuntu ARM嵌入式系统的交叉编译

Ubuntu ARM嵌入式系统的交叉编译,ubuntu,arm,embedded,crypto++,Ubuntu,Arm,Embedded,Crypto++,我正试图在beaglebone black上安装Crypto++进行交叉编译,并使用Ubuntu进行编译。我是个新手,请帮帮我 我做到了: . ./setenv-embedded.sh 一切似乎都很好。然后我尝试使用make命令: make -f GNUmakefile-cross static static dynamic cryptest.exe 但我没有得到与上所示相同的输出 然后试着测试它 /usr/bin/arm-linux-gnueabi-readelf -h ./cryptes

我正试图在beaglebone black上安装Crypto++进行交叉编译,并使用Ubuntu进行编译。我是个新手,请帮帮我

我做到了:

. ./setenv-embedded.sh
一切似乎都很好。然后我尝试使用make命令:

make -f GNUmakefile-cross static static dynamic cryptest.exe
但我没有得到与上所示相同的输出

然后试着测试它

/usr/bin/arm-linux-gnueabi-readelf -h ./cryptest.exe | grep -i 'class\|machine' 
Class:       Elf32
Machine:     Intel 80386
机器仍然是Intel而不是ARM:

你能帮我做这个吗


非常感谢

如果您注意到,您会收到一条消息“无需为‘静态’和朋友做任何事情”

您需要执行
makeclean
makedistclean
以删除以前的i686/x86_64构建

您还应该确保使用的是最新的
GNUmakefile-cross
和最新的
setenv-embedded.sh
。如果您使用的是Crypto++5.6.3或更高版本,那么它已经在Git中,您只需要
Git pull
。如果您使用的是Crypto++5.6.2及更早版本,则可以从下载


以下是我在Ubuntu 14.04上看到的

$ . ./setenv-embedded.sh 
CPP: /usr/bin/arm-linux-gnueabi-cpp
CXX: /usr/bin/arm-linux-gnueabi-g++
AR: /usr/bin/arm-linux-gnueabi-ar
LD: /usr/bin/arm-linux-gnueabi-ld
RANLIB: /usr/bin/arm-linux-gnueabi-gcc-ranlib-4.7
ARM_EMBEDDED_TOOLCHAIN: /usr/bin
ARM_EMBEDDED_CXX_HEADERS: /usr/arm-linux-gnueabi/include/c++/4.7.3
ARM_EMBEDDED_FLAGS: -I/usr/arm-linux-gnueabi/include/c++/4.7.3 -I/usr/arm-linux-gnueabi/include/c++/4.7.3/arm-linux-gnueabi
ARM_EMBEDDED_SYSROOT: /usr/arm-linux-gnueabi

$ make -f GNUmakefile-cross 
/usr/bin/arm-linux-gnueabi-g++ -DNDEBUG -g2 -Os -fPIC -pipe
  -I/usr/arm-linux-gnueabi/include/c++/4.7.3
  -I/usr/arm-linux-gnueabi/include/c++/4.7.3/arm-linux-gnueabi
  --sysroot=/usr/arm-linux-gnueabi -c cryptlib.cpp
  ...
然后:

$ /usr/bin/arm-linux-gnueabi-readelf -h ./libcryptopp.a | grep -i 'class\|machine' | head -2
  Class:                             ELF32
  Machine:                           ARM

但我没有得到与ARM嵌入式(命令行)相同的输出

我无法转储
libcryptopp.so
cryptoest.exe
的内容,因为Ubuntu工具链似乎出现了倒退。链接器无法再链接可执行文件



Ubuntu的交叉编译器有点不正常。在wiki上编写示例时,我们提交了一些针对in的bug报告。这就是我们在提供使用ARM交叉编译器的示例的原因。

您的解决方案有效。非常感谢。然而,我有这个麻烦。“/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../../../../../../../arm-linux-gnueabihf/bin/ld:无法合并文件zinflate.o的特定于目标的数据”你知道这是什么吗?@Lester-我没有遇到过,所以我不知道如何修复它。你可以看看。不要张贴图片。在你的问题中粘贴文本@Lester-我能够在BeagleBone Black上以本机方式编译Crypto++(无需交叉编译)。BBB映像预加载了Git、GCC、Make等。Debian映像包括Qt。你有没有试过像在桌面上一样用SSH连接BBB并编译?@Lester-我们最近在中添加了一条消息。我在自责,因为我早就应该意识到这是需要的。真的很感激@jww谢谢!