作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经构建了一个共享库(即 libabc.so
)和一个使用我的共享库的可执行文件(即 myapp
)。我已经将共享库和我的可执行文件都放在了我的文件系统中,但是当我运行我的可执行文件时,它给了我以下错误
error while loading shared libraries: <target_lib_path>/<mylib>.so cannot open shared object file: No such file or directory.
~/targetfs
构建我的共享库后,我将它安装在
~/targetfs/usr/local/abc/lib
.在链接我的应用程序期间,我给了它
LDFLAGS += -L~/targetfs/usr/local/abc/lib
~/targetfs
的环境中运行我的应用程序时是我的文件系统,然后我的应用程序提示
/home/user/targetfs/usr/local/abc/lib/libabc.so: can not open shared object file. No such file or directory exist.
/lib
中查找我的共享库。 ,
/usr/lib
,
/usr/local/lib
或
LD_LIBRARY_PATH
地点。
CC = $(CROSS_COMPILE)gcc
CFLAGS = -Wall -shared -fpic
LDFLAGS = -Xlinker --gc-sections --allow-shlib-undefined
LIBRARY = libabc.so
OBJ_DIR = obj
SRC_DIR = src
CHK_DIR_EXISTS = test -d
MKDIR = mkdir -p
# Project Source Files
C_SOURCES += $(SRC_DIR)/abc.c
OBJECTS += $(OBJ_DIR)/abc.o
INCLUDES += -Iinc
$(LIBRARY): $(OBJECTS)
@echo ""
@echo "Linking..." $(LIBRARY)
@$(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) -o $(OBJ_DIR)/$(LIBRARY)
LDFLAGS += $(TARGETFS)/usr/local/abc/lib/libabc.so \
-lpthread -lrt
最佳答案
您可以要求链接器将多个搜索路径放入二进制文件中。您可以使用 -Wl,rpath=... 选项引入这些搜索路径。
gcc -o abc abc.c
-L~/targetfs/usr/local/abc/lib
-labc
-Wl,-rpath=/usr/local/abc/lib
-Wl,-rpath=...
-Wl,-rpath=...
关于makefile - 如何让我的应用程序独立于其位置链接库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482984/
我是一名优秀的程序员,十分优秀!