如何在makefile中包含*.so文件

Met*_*est 3 c linux gcc glibc x86-64

对于一个程序,我正在链接静态glibc库(我修改过).我的makefile看起来像这样.

CXX = g++
CXXFILES = main.c

CXXFLAGS = -g -o prog -D_GNU_SOURCE
LIBS = ../../nptl/libpthread.a ../../libc.a -lpthread

all:
    $(CXX) $(CXXFILES) $(LIBS) $(CXXFLAGS)
Run Code Online (Sandbox Code Playgroud)

但是,我现在想要使用动态共享对象*.so文件,而不是使用静态*.a文件.是否足以用makefile中的*.so文件替换*.a文件.如果不是这样做的正确方法.我试着简单地用makefile中的*.so文件替换*.a,但是当我这样做时,程序似乎使用了原始的glibc(而不是我修改过的glibc).

gre*_*reg 7

如果您不想使用标准库,则可能需要该-nostdlib标志.此外,如果要动态链接库,则需要告知链接器它们的位置. -L/dir/containing -lc.

如果你不想LD_LIBRARY_PATH在执行时设置,你需要设置rpath,-Wl,--rpath=/path/containing.