【发布时间】:2012-05-28 04:15:12
【问题描述】:
对于一个程序,我正在链接静态 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)
但是,我现在不想使用静态 *.a 文件,而是使用动态共享对象 *.so 文件。用makefile中的*.so文件替换*.a文件是否足够?如果不是这样做的正确方法是什么。我试图简单地将 *.a 替换为 makefile 中的 *.so 文件,但是当我这样做时,程序似乎使用了原始的 glibc(而不是我修改过的)。
【问题讨论】:
-
你不是只需要正常编译,然后在运行之前设置你的
LD_PRELOAD吗? stackoverflow.com/questions/426230/what-is-the-ld-preload-trick -
不,我不想使用 LD_PRELOAD!
-
@MetallicPriest:在这种情况下,您应该编辑您的问题,以便详细说明您的所有约束。