/home/plus/demo下有main.c和func.c兩個檔案:
func.c:
int func(int a)
{
return a;
}
main.c:
#include <stdio.h>
extern int b;
int func(int a);
int main()
{
b = func();
printf("%d\n", b);
}
1.靜态編譯
法1:gcc main.c func.c生成的可執行檔案是目前路徑下的a.out,執行./a.out即可得到程式運作結果;
法2:gcc main.c func.c -o main ,執行./main即可;
2.使用動态連結庫
将這個func.c編譯成獨立的與具體的連接配接位址無關的.o目标檔案:
gcc -fPIC -c func.c -o func.o
然後 再開始建立動态連結庫檔案:
gcc -shared func.o -o libfunc.so
将庫檔案的目錄添加到環境變量中:
export LD_LIBRARY_PATH=/home/plus/demo/
給main.c指定使用的庫進行編譯:
gcc main.c -o main libfunc.so
執行:
./main