国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

linux下動態(tài)庫.so制作與使用實(shí)踐(ubuntu14.04)

2019-11-06 06:14:37
字體:
供稿:網(wǎng)友

靜態(tài)庫制作和使用實(shí)踐,見上一篇博文 http://blog.csdn.net/QQ_26437925/article/details/51541717


linux 動態(tài)庫 .so 實(shí)踐如下: 基本文件同上一個靜態(tài)庫的文件,目錄如下 這里寫圖片描述

除了Makefile文件外,其他文件都是相同的。動態(tài)庫生成需要使用的是 gcc -shared -fPIC 而不是 靜態(tài)庫的ar名利

Makefile

.PHONY: build test cleanCC=gccOBJ_DIR=./objLIB_DIR=./libHEADERS=-I./includeDEBUG=-g -ggdbWALL=-Wall -WCFLAGS=$(WALL) $(DEBUG)LIB_CC=$(CC) $(CFLAGS) $(HEADERS)LIB_OBJ = $(addPRefix $(OBJ_DIR)/, my_math.o my_print.o)prepare: @-if [ ! -d $(OBJ_DIR) ]; then mkdir $(OBJ_DIR); fi @-if [ ! -d $(LIB_DIR) ]; then mkdir $(LIB_DIR); fibuild:prepare $(LIB_DIR)/libmylib.so$(LIB_DIR)/libmylib.so:$(LIB_OBJ) $(CC) -shared -fPIC $^ -o $@$(OBJ_DIR)/%.o:src/%.c $(LIB_CC) -fPIC -c $< -o $@test:a.outa.out:test.c $(LIB_CC) test.c -L$(LIB_DIR) -lmylib clean: @-rm -rf $(OBJ_DIR) @-rm $(LIB_DIR)/libmylib.so @-rm -rf $(LIB_DIR) @-rm a.out

仍然是如下的幾個make命令

make build make testmake clean

動態(tài)庫找不到的解決方法,參考如下博文 http://blog.csdn.net/lqhbupt/article/details/7875112

ldd命令可以打印出可執(zhí)行文件的共享庫文件,一個shell腳本,通過ld-linux.so實(shí)現(xiàn),ld-linux.so先于可執(zhí)行文件執(zhí)行,獲取控制權(quán),可查看可執(zhí)行文件的共享庫依賴關(guān)系。

1 通過環(huán)境變量設(shè)置

添加了一個LD_LIBRARY_PATH(環(huán)境變量文件很多,自行g(shù)oogle),source命令生效

這里寫圖片描述

通過ldd命令查看,并運(yùn)行 這里寫圖片描述

2 通過/usr/lib添加使用

直接把.so復(fù)制到/usr/lib下,并通過ldconfig命令生效 這里寫圖片描述

ldd命令查看并運(yùn)行 這里寫圖片描述


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 泸溪县| 南昌县| 偏关县| 云阳县| 万山特区| 建平县| 富蕴县| 湟源县| 河西区| 公安县| 五家渠市| 永康市| 五华县| 金华市| 嵩明县| 措勤县| 曲麻莱县| 朝阳县| 西城区| 弥勒县| 德格县| 安宁市| 苏尼特右旗| 安陆市| 长丰县| 深泽县| 淮滨县| 达日县| 五莲县| 定西市| 怀宁县| 汕头市| 宜州市| 安化县| 尉氏县| 遂宁市| 分宜县| 镶黄旗| 凤冈县| 拜城县| 砀山县|