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

时间:2012-05-21 16:34:17

标签: c linux gcc x86-64 glibc

对于一个程序,我正在链接静态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)

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

1 个答案:

答案 0 :(得分:6)

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

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