Cryptopp 制作 ARM 32 位共享库

Posted

技术标签:

【中文标题】Cryptopp 制作 ARM 32 位共享库【英文标题】:Cryptopp make ARM 32bit shared library 【发布时间】:2021-08-27 09:35:08 【问题描述】:

我是 Linux 和 Ubuntu 的新手,我需要通过 ARM32 构建 cryptopp 库。 我一直在关注ARM Embedded(Command Line) 的Install the PackageSet the EnvironmentBuild 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它也不起作用

【问题讨论】:

【参考方案1】:

很可能您只需要使用g++-arm-linux-gnueabi 而不是g++

【讨论】:

非常感谢。我通过您的回答找到了解决方案。 随意编辑/扩展答案以描述实际解决方案

以上是关于Cryptopp 制作 ARM 32 位共享库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 mingw 编译 cryptopp 5.6.2

将 32 位动态库转换为 64 位的 osx

共享库加载时重定位

嵌入式物联网32 ARM linux 等学习资料共享给大家

共享库载入时重定位

交叉构建时 buildrpm 失败