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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译在ubuntu中生成共享对象文件相关的知识,希望对你有一定的参考价值。

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等几个不同的平台上使用这些文件。

答案

请注意,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

以上是关于编译在ubuntu中生成共享对象文件的主要内容,如果未能解决你的问题,请参考以下文章

Azure 文件共享 SAS 令牌签名未按预期生成,如何为文件对象生成签名以匹配门户中生成的签名?

如何在 KMM(kotlin 本机)共享模块中读取 Swift 框架库中生成的对象数组

使用在另一个片段(NPE)中生成的值设置片段的 TextView [重复]

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法

在 Caffe 中生成用于对象检测的 lmdb 文件

windows和ubuntu虚拟机设置共享文件夹,在windows中用source insight阅读和编写代码,在linux中用交叉编译工具编译。