我尝试将位于项目文件夹中的库实现为使用autoconf
(使用autoconf
创建的Makefile)构建的项目。但是我总是收到错误消息,即找不到共享对象。
加载共享库时出错:libgraphblas.so.2:无法打开 共享对象文件:没有这样的文件或目录
手动链接文件也可以,在没有autoconf
的另一个项目中也可以链接文件,但是我无法配置autoconf
来自动创建文件。
这正在运行Makefile
INCDIR = ../include
LIBDIR = ../lib
EXE = tricky
LDFLAGS = -lgraphblas -Wl,-rpath,$(LIBDIR) -L$(LIBDIR)
CC = g++ -std=c++11
CFLAGS = -Wall -I$(INCDIR)
$(EXE): main.o reporter.o
$(CC) $^ -o $@ $(LDFLAGS)
main.o: main.cc
$(CC) $(CFLAGS) -g -c $<
reporter.o: reporter.cc $(HEADERS)
$(CC) $(CFLAGS) -g -c $<
clean:
rm -f *.o *~ $(EXE)
在用于Autoconf的Makefile.am中,我试图复制Makefile
INCDIR = ../resources/GraphBLAS/include
LIBDIR = ../resources/GraphBLAS/lib
bin_PROGRAMS = programm
programm_SOURCES = ....
programm_CPPFLAGS = -I$(INCDIR)
programm_LDADD = -lgraphblas -L$(LIBDIR)
...
我得到以下链接命令:
g++ -std=c++11 -pthread -g -O2 -L/home/user/Documents/Thesis/sparqlSim-
dav/resources/GraphBLAS/lib -o programm {Sources.o} -lgraphblas -
L../resources/GraphBLAS/lib
但是我需要这个(手动执行时起作用):
g++ -std=c++11 -pthread -g -O2 -L/home/user/Documents/Thesis/sparqlSim-
dav/resources/GraphBLAS/lib -o programm {Sources.o} -lgraphblas -
L../resources/GraphBLAS/lib -Wl,-rpath,$(LIBDIR)
将
"-Wl,-rpath,$(LIBDIR)"
添加到LDFLAGS
对我不起作用。
如何将"-Wl,-rpath,$(LIBDIR)"
添加到autoconf
创建的链接命令中?