【发布时间】:2021-08-27 09:35:08
【问题描述】:
我是 Linux 和 Ubuntu 的新手,我需要通过 ARM32 构建 cryptopp 库。
我一直在关注ARM Embedded(Command Line) 的Install the Package、Set the Environment、Build the Library部分
下面是我做的
git clone cryptopp
$> git clone https://github.com/weidai11/cryptopp.git
$> cd cryptopp
安装包部分
$> sudo apt-get 更新
$> sudo apt-get install g++-arm-linux-gnueabi gcc-arm-linux-gnueabi
设置环境部分
我打开了./cryptopp/TestScript/setenv-embedded.sh 并修改了以下值
ARM_EMBEDDED_CXXFLAGS="-|/usr/arm-linux-gnueabi/include/c++/7.5.0 -|/usr/arm-linux-gnueabi/include/c++/7.5.0/arm-linux-gnueabi" ARM_EMBEDDED_SYSROOT="/usr/arm-linux-gnueabi"
ARM_EMBEDDED_TOOLCHAIN_VERSION="7.5.0"
构建库部分
$> 运行源码./TestScript/setenv-embedded.sh
$> sudo make -f GNUmakefile-cross 静态动态 cryptest.exe
我在上面尝试过,但是,构建运行使用 g++ 而不是 arm-linux-gnueabi-g++下面
g++ -DNDEBUG -g2 -O3 - fPIC - 管道 -c cryptlib.cpp
g++ -DNDEBUG -g2 -O3 - fPIC - 管道 -c cpu.cpp
...
结果共享库是 '64bit x86-64' 版本。 我想做一个 32 位 arm 架构的 cryptopp 共享库。
有人帮助我或分享有用的链接吗?
已解决
我参考了@Anton Malyshev 的回答并解决了。
正如他所说,将 g++ 更改为 arm-linux-gnueabi-g++ 非常有效。 至于如何,这是我的解决方案(如果有更好的东西,请分享)
- 打开GNUmakefile-cross文件并添加
CXX := arm-linux-gnueabi-g++ - 运行 sudo make -f GNUmakefile-cross static dynamic cryptest.exe 就是这样。
但我不知道为什么即使我关注了cryptopp的wiki它也不起作用
【问题讨论】: