我正在尝试将GNU Coreutils编译为一组共享库,而不是一组可执行文件。我认为make
会让我传递一个标志来告诉它这样做,但从我所看到的,我实际上必须修改configure.ac和Makefile.am以使其工作。我宁愿不这样做,因为这可能会在代码中引入错误,我现在可以依赖它来实现无错误。我尝试通过输入以下命令手动将目标文件转换为:
make CFLAGS='-fpic'
gcc -shared -o ls.so coreutils/src/ls.o
我能够创建so文件,但似乎有一些我缺少的标志,我没有看到任何方法来访问编译和链接代码所需的标志列表(即使此信息明确包含在计算机中)。我唯一能想到的就是手动完成所有链接器错误并尝试找出丢失的标志,但我希望有一种不那么繁琐的方式来获得我想要的东西。
答案 0 :(得分:0)
不确定您要尝试做什么,但与此相关的是./configure --enable-single-binary选项,它将所有对象链接到单个可执行文件。