當前位置:首頁 » 操作系統 » linux下的c庫

linux下的c庫

發布時間: 2023-05-22 23:00:40

1. 新手:linux下使用第三方C庫(openssl),是調用.so文件還是直接調用.h文件

不管什麼庫文件,你都既要在包含.h文件(不然編譯通不過:有未聲明的函數),也要在gcc選項裡面指定.so文件的位置(不然鏈接通不過:未知的符號)
比如
gcc -I include_path -L lib_path -lyourlib
include_path改成你頭文件的目錄
lib_path改成你動態庫文件的目錄
-lyourlib 改成l加上你要引用的庫文件名字
比如libpthread.so就改成-lpthread

2. Linux下C/C++動態庫在運行時是怎樣載入進來的

在linux上,你在ps中說的那種"將動態庫作為一個參數傳到程序里"的使用方式,是通過dlopen函數將.so載入到當前進程中,並且通過ld.so將.so"鏈接"進當前進程。這個"鏈接"過程包括:查找未定義符號在當前進程中的地址、分配數據/代碼/bss段內存(數據初始化全局變數、代碼段重定位)、執行constructor函數等。之後,可以使用dlsym在已知符號名的情況下通過符號名查找符號對應的地址。這個符號可以是一個全局變數、全局函數等。在你說的C++中,重載的函數也可以理解為全局函數,會有一個屬性為weak的符號。該符號的符號名如果不做修改,默認按照System V的C++ API命名規范命名(以保證linux下不同編譯器編譯出來的.so和.o可以通用)。但如果使用extern "C"修飾之後,變成C的函數名,則無名稱修飾,便於使用。

作者:yin jie
鏈接:https://www.hu.com/question/29988788/answer/46352593
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

3. linuxc語言函數庫在什麼路徑

一般來說是放在/usr/include目錄下的;
但是這個並不局限也是可控的,如果我們進行開發過程中,
就會在內核的庫函數文件目錄:
例如在:/XXX/XXX/linux-X.X/include
所以根據不同的情況,頭文件存放的目錄也是不同的,具體需要可以根據locate和grep命令進行查詢。

4. linux下c/c++開發資料庫類的軟體,主流用什麼資料庫

市場上現在應用較多的是:oracledb2mysqlsysbaseinformix等資料庫 對於在資料庫上做開發,大型數據昌者輪庫的公司都會提供相應的開發工具:如: oracle的耐信proc db2的db2 informix的esql 不同的資料庫嵌入式c程序名也規定不同,如: oracle的.pc.pcpp informix的.ec.ecpp db2的.sqc等 總的來說oracle占的市嫌寬場份額大一些。


5. linux平台下C語言調用C庫問題

1:你平時在Linux下編程使用的read,write都是庫函數;
2:編程的過程可以是:調用庫函數,庫函數再去調用系統函數;也可以是直接調用系統函數,而這些系統函數是Linux內核定義的一些宏定義而已.兩種方法都是可以的.

6. linux系統調用 shell命令 c庫函數怎麼區分

首先,命令應該是好和其他兩個區分開來的了,因為命令都是可以直接敲在shell上面回車執行的,而系統調用和庫函數都不行;
其次,Linux系統調用和C庫函數都是函數的形式,即都是「func(args)」的形式,但系統調用是
由系統內核對外提供的服務介面;C庫函數和你自己寫的普通的函數沒有本質的區別,只是在C標准庫中而已,Linux上面glibc就是C函數庫。從表面上看兩者不太好區分,不過,你可以從它們需要包含的頭文件來區分,C庫函數像printf在
中,std就是標准(standard)的縮寫形式,因此在
中的函數,基本都是C庫函數;像
ssize_t
read(int
fd,
void
*buf,
size_t
count);這樣很多的系統調用是包含在
中的,unistd意思是UNIX
Standard,從這個意義就可以區分了。
希望對你有所幫助,如還有問題,可隨時聯系我:-)

熱點內容
python異或運算符 發布:2025-04-22 19:45:21 瀏覽:829
網路為什麼改不了伺服器 發布:2025-04-22 19:44:38 瀏覽:533
js壓縮base64 發布:2025-04-22 19:29:53 瀏覽:198
颶風加密工具 發布:2025-04-22 19:27:50 瀏覽:639
發票江蘇伺服器地址 發布:2025-04-22 19:21:29 瀏覽:33
編譯器路徑錯誤 發布:2025-04-22 18:53:30 瀏覽:37
王者榮耀伺服器地址被屏蔽 發布:2025-04-22 18:46:25 瀏覽:636
光遇的安卓和蘋果有什麼區別 發布:2025-04-22 18:46:23 瀏覽:420
b編譯執行 發布:2025-04-22 18:44:13 瀏覽:456
怎麼打開ftp服務 發布:2025-04-22 18:34:42 瀏覽:149