gpt4 book ai didi

makefile - 将共享库路径添加到Makefile

转载 作者:行者123 更新时间:2023-12-04 12:33:34 25 4
gpt4 key购买 nike

我想将共享库路径添加到我的Makefile中。我已经在makefile中放入了export命令,它甚至被调用了,但是我仍然必须再次手动将其导出。
正确的方法是什么?

Makefile:

SOURCES = kwest_main.c fusefunc.c dbfuse.c logging.c dbbasic.c dbinit.c dbkey.c metadata_extract.c plugins_extraction.c import.c

LIBS = -L$(LIB) -lfuse -lsqlite3 -lkw_taglib -ltag_c -ltag -Wl,-rpath=.

INCLUDE = ../include
LIB = ../lib

EXE = kwest

CC = gcc

CCFLAGS = -g -Wall -Wextra -std=gnu99 -pedantic-errors -I$(INCLUDE)

OFLAGS = -c

ARCH = $(shell getconf LONG_BIT)

X = -D_FILE_OFFSET_BITS=$(ARCH)

OBJECTS = $(SOURCES:.c=.o)

$(EXE) : $(OBJECTS)
$(CC) -o $(EXE) $(OBJECTS) $(LIBS)

%.o: %.c
$(CC) $(OFLAGS) $(CCFLAGS) $<

fusefunc.o: fusefunc.c
$(CC) $(OFLAGS) $(CCFLAGS) $< $X

kwest_libs: kw_taglib
--->export LD_LIBRARY_PATH=$(LIB):$LD_LIBRARY_PATH

kw_taglib: plugin_taglib

plugin_taglib: plugin_taglib.o kwt_upd_meta.o
gcc -g -shared -I$(INCLUDE) -Wl,-soname,libkw_taglib.so -o $(LIB)/libkw_taglib.so -ltag -ltag_c plugin_taglib.o kwt_upd_meta.o

plugin_taglib.o:
gcc -c -g -I$(INCLUDE) -Wall -Wextra -pedantic-errors -std=gnu99 -fPIC -ltag_c -c plugin_taglib.c

kwt_upd_meta.o:
g++ -c -g -I$(INCLUDE) -Wall -Wextra -pedantic-errors -fPIC -ltag kwt_upd_meta.cpp

c: clean

clean:
rm -rf *.o
rm -rf *.db

ca: cleanall

cleanall: clean
rm -rf $(EXE)

ob: cleanall
rm -rf ~/.config/$(EXE)/

执行:
$ ./kwest mnt
./kwest: error while loading shared libraries: libkw_taglib.so: cannot open shared object file: No such file or directory
$ export LD_LIBRARY_PATH=../lib:D_LIBRARY_PATH
$ ./kwest mnt
"executes correctly"

最佳答案

通常的方法是在默认make期间将动态库复制到标准库路径之一

/usr/local/bin



或您的项目库路径之一,然后使用

-L/project/specific/path



在进行安装时。

关于makefile - 将共享库路径添加到Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com