编译在ubuntu中生成共享对象文件

问题描述 投票:-1回答:1
I want to get the shared object file(.so) by compiling

https://github.com/lucasjones/cpuminer-multi

我使用下面的命令,生成几个.O文件。

/autogen.sh 

./configure --prefix=$HOME/Downloads

make

你能帮我生成.so文件吗?我想在Android,Ubuntu等几个不同的平台上使用这些文件。

compilation shared-libraries
1个回答
0
投票

请注意,ELF共享对象实际上应包含position-independent code(PIC)。请参阅Drepper的How to Write Shared Libraries论文和this答案。 shared libraries的简单构建说明是herethere

在您的cpuminer-multi存储库中,有一些汇编程序文件,例如aesb-x64.S .....所以你至少需要检查它们内部的汇编程序代码是否为PIC(或修补这些文件以使它们成为PIC)。

你能帮我生成.so文件吗?我想在几个不同的平台上使用这些文件

这可能不起作用,因为ABIAPI(例如普通或标准库)可能略有不同。我会为每个平台推荐不同的版本。

./configure --prefix=$HOME/Downloads

这看起来很奇怪(闻起来很糟糕)。了解更多关于autoconf的信息。 --prefix与安装子目录有关,而与构建树无关。我会建议--prefix=$HOME/soft/然后添加$HOME/soft/bin/到你的PATH variable

© www.soinside.com 2019 - 2024. All rights reserved.