国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 莲花县| 湖北省| 柏乡县| 沧州市| 余庆县| 云阳县| 东丽区| 曲沃县| 普洱| 博湖县| 醴陵市| 修水县| 安岳县| 昌乐县| 买车| 安吉县| 美姑县| 敦煌市| 布尔津县| 合作市| 平湖市| 漳浦县| 敦化市| 中江县| 砚山县| 吉安市| 望江县| 辽阳市| 荃湾区| 闽清县| 佛教| 衡南县| 班玛县| 长泰县| 鹤山市| 山丹县| 平谷区| 壶关县| 廊坊市| 班玛县| 廉江市|