我正在尝试编译一个C程序,同时动态链接libcurl和静态libc .

我的Makefile看起来像:

SRC = myprogram.c LDFLAGS = -static libc.a -static-libgcc -Wl,-static -lc LDFLAGS = -linfluxdb -lcurl -lm -ljson-c

我需要动态链接libc,因为libc版本在centos7和centos6之间不一样,所以我将在二进制文件中包含所选的一个 . 我可以静态链接所有内容但它不适用于libcurl;我在链接器中遇到错误,解决了几个libcurl函数 . 我试图为libcurl添加“动态”标志

LDFLAGS = -Wl,-Bdynamic -lcurl

但是我仍然有一个对libc的动态引用 . Ldd输出:

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6(0x00007ff3811b2000)

通过这个问题(Static linking libcurl using c),我知道libcurl依赖于libc . 它是一种强制在任何地方使用静态libc的方法吗?