我正在尝试将 GNU Coreutils 编译为一组共享库,而不是一组可执行文件。我以为 make
会让我传递一个标志来告诉它这样做,但据我所知,我实际上必须修改 configure.ac 和 Makefile.am 才能做到这一点工作。我宁愿不这样做,因为这可能会在代码中引入错误,而我目前可以相信这些代码没有错误。我尝试通过输入以下内容手动将目标文件转换为 so:
make CFLAGS='-fpic'
gcc -shared -o ls.so coreutils/src/ls.o
我能够创建 so 文件,但似乎缺少许多标志,而且我看不到任何方法来访问编译和链接代码所需的标志列表(即使此信息清楚地包含在计算机中)。我唯一能想到的就是手动检查所有链接器错误并尝试找出缺少的标志,但我希望有一种不那么乏味的方法来获得我想要的东西。
最佳答案
不确定您要做什么,但与此相关的是 ./configure --enable-single-binary 选项,它将所有对象链接到单个可执行文件。
关于将 coretuils 编译为共享对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949523/