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

时间:2017-12-26 09:36:12

标签: compilation shared-libraries

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。

1 个答案:

答案 0 :(得分: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