我正在尝试编译一个C程序,同时动态链接libcurl和静态libc。
我的Makefile看起来像:
SRC = myprogram.c
LDFLAGS + = -static libc.a -static-libgcc -Wl,-static -lc
LDFLAGS + = -linfluxdb -lcurl -lm -ljson-c
我需要动态链接libc,因为centos7和centos6之间的libc版本不一样,所以我将在二进制文件中包含所选的一个。 我可以静态链接所有内容但它不适用于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的方法吗?