靜態(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)系。


直接把.so復(fù)制到/usr/lib下,并通過ldconfig命令生效 
ldd命令查看并運(yùn)行 
新聞熱點(diǎn)
疑難解答