本文源於學習linux下通過cmake和makefile兩種方式生成動態鏈結庫.so檔案及對.so檔案使用的記錄:
linux 動態鏈結庫建立及使用參考博文:linux下生成動態鏈結庫並使用(使用cmake)
生成可執行程式的命令:gcc hello.c -i/home/xuwei/workspace/hellolib/include -l/home/xuwei/workspace/hellolib/build -lhello -o hello
執行後報的錯誤:
/tmp/cc3rpajg.o:在函式『main』中:
hello.c:(.text+0xa):對『hello』未定義的引用
collect2: error: ld returned 1 exit status
通過分析,定位到makefile生成的.so庫有問題,將該.so檔案替換為參考博文中的cmake生成的.so檔案,就能順利生成出可執行檔案,並能成功執行。
關於linux下靜態庫和動態庫補充了解的參考博文:linux靜態庫和動態庫學習總結
建立靜態鏈結庫 動態鏈結庫
下面的實操中的動態庫或者靜態庫名都用wujunwu 第一步 建立乙個源 建立靜態鏈結庫的源 include void func1 void int func2 int x,int y 第二步 建立乙個.件作為函式宣告 void func1 void intfunc2 int x,int y 第三步 ...
C 動態鏈結庫的建立及使用
1 開啟vs2013,新建類庫,命名為 mydll 2 寫類庫 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespa...
建立動態鏈結庫
要建立dll,就必須首先建立乙個或多個源 檔案,還有乙個連線檔案用來匯出函式。如果打算可以以載入時動態鏈結使用dll的話,還必須建立乙個導入庫。建立原始檔 dll的源 中包含了需匯出的函式及資料,還有內部函式及資料,另外可以有乙個可選的入口函式。你可以使用任意支援建立基於windows的dll工具來...