将 coretuils 编译为共享对象?

标签 c linux makefile gnu

我正在尝试将 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/

相关文章:

templates - Jade 模板作为 html 的预处理器

c - Python C API 段错误

python - 出现在套接字消息中的转义序列

linux - 编译 Linux 内核 4.4.0 时出现意外错误

linux - 如何使用lftp传输分段文件?

macos - CMAKE 之后使用 MAKE 编译不起作用(OS X 上的 MySQL)

c - 使用结构体和多线程时出现 malloc.c 错误

C Socket编程服务器向多个客户端发送相同的消息

linux - 使用linux grep命令或任何命令从excel文件中检索列标题

c++ - Linux makefile 调试库