1.
在一個終端建立一個文件,並打開后,若再次建立一個終端打開此文件編輯時則發生錯誤,當文件被創建時會建立一個隱藏文件,“main.c.swp”再次打開時,會先去找main.c.swp文件,若此文件存在,則代表文件被打開過。第二個打開時只能看,不能修改,此時為一個只讀文件。
2.什么是庫文件?
庫是一組預先編譯好方法的集合。
存放地址;/lib ,/usr/lib
命令存放在/usr/bin下
3.頭文件存放在/usr/include
4.
libc.so :共享庫,c的標准庫
5.靜態庫和共享庫
1)靜態庫
ar crv liboo.a bill.o fred.o
crv 參數 libfoo.a 庫的名字 bill.o fred.o 庫里面需要 打包的.o文件
c 創建一個庫 r 把.o文件添加到庫里 v 顯示過程
前綴lib 后綴.o 名字 foo
庫里面沒有主函數,只有實現方法
2).c為什么不需要指定?
因為c庫編寫時都會用到stdio.h,在寫程序時,自動鏈接到c的標准庫,默認路徑
3)共享庫
gcc -shared -fPIC -o libfoo.so add.o max.o
4)靜態庫和標准庫的區別?
靜態庫在鏈接時將用到的方法包含到最終生成的可執行程序中,而共享庫不包含,只做
標記,在運行程序時,才動態加載。
使用共享庫編譯的可執行程序明顯比使用靜態庫小一些,靜態庫被刪掉可執行程序依然可以執行,共享庫被刪掉,使用該共享庫,或依賴該共享庫的都不能執行。
5)如果庫不在標准文件下,則通過設置環境變量來指定加載庫的路徑。
環境變量看值:echo $.......
環境變量命令:export ....
