靜態庫
靜態庫 要被包含到源程式中的庫
優點 執行速度快
缺點 占用系統資源比較多
使用的場合 對時間要求很高的場合
靜態庫的製作:
1、把所有的源程式(.c檔案)製作成目標檔案(.o 檔案)
gcc -c mul.c -o mul.o
gcc -c sub.c -o sub.o
gcc -c add.c -o add.o
2、使用工具將所有 .o 打包生成靜態庫檔案(靜態庫的字尾名是 .a )
ar rcs lib庫名.a mul.o sub.o add.o
3、編譯的時候 gcc 庫包含的相關命令
-l 庫檔案所在的目錄
-l(l的小寫) 包含要新增到程式中的庫,後面跟庫名即可
-i(i的大寫) 指定標頭檔案所在路徑
gcc 2.c -l/home -lmylib -i../
動態庫製作
1、將要作為動態庫的檔案做成目標檔案檔案(.o)
注意和生成普通目標檔案的區別
gcc -c ***.c -o ***.o -fpic
2、將目標檔案編譯成動態庫,字尾名是 .so
gcc -shared -o lib庫名.so ***.o
3、編譯的時候需要把動態庫加上
gcc src/main.c -l./lib -lmylib -o bin/a.out
4、執行時候會找不到動態庫檔案,解決辦法:
1、臨時辦法,只在當前終端有效,終端重啟以後就沒用了
在終端輸入以下命令:
export ld_library_path=庫所在目錄的絕對路徑
2、修改終端的配置檔案 ~/.bashrc
§ vim ~/.bashrc
§ 把 export ld_library_path=庫所在目錄的絕對路徑
新增到檔案的最後一行
§ 重啟終端或者執行命令 source ~/.bashrc 使用配置檔案生效
3、將動態庫放到系統預設目錄下 ===> /usr/lib
4、配置檔案 /etc/ld.so.conf
§ vim /etc/ld.so.conf
§ 將庫檔案的絕對路徑新增到庫的最後一行
§ 使配置檔案生效:ldconfig -v
檢視可執行使用了哪些動態庫的命令:ldd 可執行檔案
動態庫和靜態庫在同乙個目錄下,預設包含的是動態庫
Qt第十五天
qwdialogsize.h ifndef qwdialogsize h define qwdialogsize h include namespace ui class qwdialogsize public qdialog endif qwdialogsize hqwdialogsize.cpp...
python第十五天
什麼是模組?一系列功能的集合 定義模組?建立乙個py檔案就是乙個模組,該py檔名就是模組名 怎麼使用模組?在要是用的模組檔案中通過import 模組名 來匯入模組 模組的四種方式?1 編譯執行模組所對應的py檔案,形成對應的pyc檔案 2 產生該模組自己的全域性命名空間 3 在適應該模組的全域性命名...
第十五天 模組
就是從邏輯上組織python 變數,函式,類,邏輯 實現乙個功能 本質就是.py結尾的python檔案 檔名是test.py的話,它的對應模組名就是test 用來從邏輯上元件模組,本質就是乙個目錄 必須帶有乙個 init py檔案 本質就是把python檔案解釋一遍 本質就是執行該報下的 init ...