1、文件類型介紹
2、out可執行文件生成
#include <stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
3、o目標文件生成
#include <stdio.h>
void hello()
{
printf("hello!\n");
}
4、a靜態庫生成
(1)創建靜態庫
由.o文件創建靜態庫,靜態庫文件名的命名規範是以lib爲前綴,緊接着跟靜態庫名,擴展名爲.a。
例如:我們將創建的靜態庫名爲hello,則靜態庫文件名就是libhello.a。
(2)調用靜態庫
#include <stdio.h>
void hello();
int main()
{
hello();
return 0;
}
gcc main.cpp libhello.a -o main.out
5、so共享庫生成
(1)創建so
由.o文件創建動態庫文件,動態庫文件名命名規範和靜態庫文件名命名規範類似,也是在動態庫名增加前綴lib,但其
例如:我們將創建的動態庫名爲hello,則動態庫文件名就是libhello.so。
gcc -shared -fPIC -o libhello.so hello.o
這是因爲在生成hello.o時,沒有使用-fPIC選項,所以我們使用
(2)調用so
gcc -o main.out main.cpp -L. -lhello
我們發現報錯了,原來是找不到動態庫文件libhello.so,程序在運行時,會在/usr/lib和/lib等目錄中查找需要的動態庫文件。
若找到,則載入動態庫,否則將提示類似上述錯誤而終止程序運行。