linux 下靜態庫的編譯與使用
前言
最近在學習《linux/Unix系統程式設計手冊》,對下載原始碼後將原始碼編譯成庫並使用的過程進行記錄。
靜態庫的字尾是.a,它的產生分兩步 :
1、由原始檔編譯生成一堆.o,每個.o裡都包含這個編譯單元的符號表
2、ar命令將很多.o轉換成.a,成為靜態庫
編譯
進入原始碼lib目錄
(藍色為連結檔案)
步驟:
1、生成.o檔案
gcc -c *.c
2、由.o檔案生成庫
ar rcs libtlpi.a *.o
使用:
方法1:使用絕對路徑
1、使用-I
包含庫的標頭檔案路徑
2、使用-L
指定庫所在的路徑
3、使用-l
指定使用的庫,此時不需要字首lib
.a
方法2: 使用系統路徑
1、將使用的標頭檔案拷貝到/usr/include
2、將庫檔案拷貝到/usr/lib
3、編譯時指定使用的庫
相關推薦
linux 下靜態庫的編譯與使用
前言 最近在學習《linux/Unix系統程式設計手冊》,對下載原始碼後將原始碼編譯成庫並使用的過程進行記錄。 靜態庫的字尾是.a,它的產生分兩步 : 1、由原始檔編譯生成一堆.o,每個.o裡都包
Linux下靜態庫與動態庫
Linux 靜態庫 動態庫 靜態庫 先說說我們為什麽需要庫?當有些代碼我們大量會在程序中使用比如(scanf,printf等)這些函數我們需要在程序中頻繁使用,於是我們就把這些代碼編譯為庫文件,在需要使用時我們直接鏈接即可。 定義: ?程序在編譯時把靜態庫的代碼鏈接到可執行程序中,在代碼運行時不再
Linux下靜態庫與動態庫(.a、.so)
ref:http://niefei.blog.ccidnet.com/blog/ccid/do_showone/tid_42855.html 1. 介紹 使用GNU的工具我們如何在Linux下建立自己的程式函式庫?一個“程式函式庫”簡單的說就是一個檔案包含了一些編譯好的程式碼和資料,這些編譯好的程式碼和資
Linux下靜態庫、動態庫的建立和使用
Linux下靜態庫、動態庫的建立和使用 Linux庫檔名由:字首lib、庫名和字尾3部分組成,靜態庫通常以.a作為字尾,動態庫以.so作為字尾, Linux下把動態庫叫做共享庫,so即shared object的縮寫。 靜態庫是程式編譯連結時使用,動態庫是程式執行時使用。
linux下靜態庫動態庫的製作和使用
動態庫與靜態庫本質是二進位制的原始碼,只是人看不懂,對機器沒有影響。 靜態庫的製作和使用 命名規則: 名字一般分為三部分,開頭為“lib”,表示這是一個庫檔案,接下來是想取的名字,最後是字尾“.a”(windows下是lib)。例如:libhello.a 製作步驟: 1.原材料:
Linux下靜態庫和動態庫的製作和使用
Linux作業系統支援的庫函式分為; 1.靜態庫:libxxx.a 在編譯時就將庫函式編譯進可執行程式中. 優點. 程式執行環境中不需要外部的函式庫. 缺點: 可執行程
Linux下靜態庫和動態庫(共享庫)
Linux作業系統支援的函式庫分為靜態庫和動態庫,動態庫又稱共享庫。linux系統有幾個重要的目錄存放相應的函式庫,如/lib /usr/lib。 靜態函式庫: 這類庫的名字一般是libxxx.a;利用靜態函式庫編譯成的檔案比較大,因為整個函式庫的所有資料都會被整合進目的碼中,他的優點就顯而易見了
linux下靜態庫.a和動態庫.so檔案的生成和使用
1.靜態庫是一些目標檔案(字尾名為.o)的集合體而已。 2.靜態庫的字尾名是.a,對應於windows作業系統的字尾名為.lib的靜態庫。 3.可以使用ar命令來建立一個靜態庫檔案。 來看一個例項,根據書中的程式碼簡化的,先看一看可以編譯成庫檔案的原始檔中的程式碼: /* test.c */ i
Linux C 靜態庫(.a) 與 動態庫(.so) 的詳解
庫從本質上來說是一種可執行程式碼的二進位制格式,可以被載入記憶體中執行。庫分靜態庫和動態庫兩種。 一、靜態庫和動態庫的區別 1、靜態函式庫 這類庫的名字一般是libxxx.a;利用靜態函式庫編譯成的檔案比較大--空間,因為整個函式庫的所有資料都會被整合進目的碼中,他的優點就顯而易見了,即編譯後的執行
linux下靜態庫、動態庫總結
1.3、靜態庫,動態庫檔案在linux下是如何生成的: 以下面的程式碼為例,生成上面用到的hello庫: /* hello.c */ #include "hello.h" void sayhello() { printf("hello,world "); }首先用gcc編繹該檔案
linux下靜態庫和動態庫使用的從無到有
首先我們先列出gcc編譯器的常用命令:我們在來看看gcc的編譯流程,因為我們在開發工具中玩了太久,一般都會忽略這些細節的:好,下面我們在來談一談靜態庫和動態庫關於靜態庫和動態庫的優點和結構實現我們就不BB了。ar是gnu歸檔工具,rcs表示(replace and creat
linux下靜態庫基本概念
一、基本概念1.1、什麼是庫 在 windows 平臺和 linux 平臺下都大量存在著庫。 本質上來說庫是一種可執行的二進位制程式碼(但不可以獨立執行),可以被作業系統載入記憶體執行。 由於 windows 和 linux 的平臺不同(主要是編譯器、
linux下靜態庫和動態庫的通用生成模板
Makefile檔案的編寫#########################################################
linux下靜態庫和動態庫詳解
原文:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我們主要來說說Linux系統下基於動態庫(.so)和靜態(.a)的程式那些貓膩。在這之前,我們需要了解一下原始碼到可執行程式之間到底發生了什麼神奇而
Linux下靜態庫和動態庫
文件拷貝 -shared info pri 歸檔文件 share 快捷 ima shared 函數庫分為靜態庫和動態庫 動態庫(格式為libname.so[.主版本號.次版本號.發行號])。在程序編譯時並不會被鏈接到目標代碼中,而是在程序運行時才被載入。 靜態庫是目標文件.
linux下簡單編譯與靜態庫編譯使用
庫函式,那麼一般來說庫函式分為兩種方式:靜態庫和動態庫。兩者的區別其實很小,靜態庫是必須要連結到執行檔案中去的,而動態庫是不需要連結到最後的執行檔案中的。怎麼理解呢?也就是說,對於最後的執行檔案而言,
Linux下RabbitMQ的編譯,生成動態庫和靜態庫
執行 編譯 ast lin 目錄 off href apt-get span 一、步驟 1、代碼托管處下載代碼 最新:https://github.com/alanxz/rabbitmq-c/archive/master.zip 穩定:https://g
Linux下動態庫與靜態庫操作
Linux命令之ar - 建立靜態庫.a檔案 用途說明 建立靜態庫.a檔案。用C/C++開發程式時經常用到,但我很少單獨在命令列中使用ar命令,一般寫在makefile中,有時也會在shell腳 本中用到。關於Linux下的庫檔案、靜態庫、動態庫以及怎樣建立和使用等相關知識,參見本文後面的相
交叉編譯環境下靜態庫的製作與測試
1、編寫my_print.c原始檔,內容如下: #include <stdio.h> void cout(const char * message) { fprintf(stdout, "%s\n", message); } 2、編寫my_lib.h
linux下的Mysql編譯安裝與基本使用
load 虛擬機 sysctl 操作 依賴 down png 技術分享 徹底 一、大致操作步驟 環境介紹: OS:center OS6.5 mysql:5.6版本 1.關閉防火墻 查看防火墻狀態:service iptables stat