日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
輕松學(xué)會(huì)Linux下查看SO接口函數(shù)方法(linux查看so接口函數(shù))

在Linux下開(kāi)發(fā)應(yīng)用程序時(shí),我們經(jīng)常會(huì)使用動(dòng)態(tài)鏈接庫(kù)(.so文件)來(lái)共享代碼,提高程序的執(zhí)行效率。SO接口函數(shù)是動(dòng)態(tài)鏈接庫(kù)中公開(kāi)的函數(shù),開(kāi)發(fā)人員可以調(diào)用這些函數(shù)實(shí)現(xiàn)特定的功能。但是,有時(shí)候我們需要查看這些SO接口函數(shù)的定義,以便更好地理解和使用它們。本文將介紹Linux下查看SO接口函數(shù)的方法,相信讀完后你就可以輕松掌握這個(gè)技能了。

愛(ài)民網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

一、使用nm命令查看SO庫(kù)函數(shù)

nm命令是Linux下的一個(gè)二進(jìn)制程序查看工具,用于查看可執(zhí)行文件和共享對(duì)象(即.so文件)中的符號(hào)表。nm命令有三個(gè)常用的選項(xiàng):-A、-a和-D,它們分別表示對(duì)所有符號(hào)、對(duì)所有符號(hào)和調(diào)試符號(hào)以及對(duì)所有動(dòng)態(tài)符號(hào)表符號(hào)進(jìn)行列出。以下是使用nm命令查看SO庫(kù)函數(shù)的詳細(xì)步驟:

1. 打開(kāi)終端,進(jìn)入SO庫(kù)所在的目錄

2. 輸入以下命令,列出這個(gè)SO庫(kù)中的所有符號(hào)及其地址:

nm -gC xxx.so

其中,-g表示顯示全局符號(hào),-C表示顯示C++符號(hào)

3. 查找你要查看的函數(shù)名,如果該函數(shù)被定義在SO庫(kù)中,就會(huì)在列表中出現(xiàn),其地址就是函數(shù)名前面的十六進(jìn)制數(shù)值

4. 接下來(lái)可以查看該函數(shù)的定義,使用objdump命令,輸入以下命令:

objdump -D xxx.so | grep 函數(shù)名

其中,-D表示反匯編所有節(jié)(section)的內(nèi)容,然后使用grep命令過(guò)濾出包含該函數(shù)名的內(nèi)容。

二、使用readelf命令查看SO庫(kù)函數(shù)

readelf是一個(gè)Linux系統(tǒng)下的ELF格式可執(zhí)行文件的查看工具。ELF(Executable and Linkable Format)是Linux下二進(jìn)制文件格式的標(biāo)準(zhǔn),它包含了代碼、數(shù)據(jù)和符號(hào)表等多種信息。下面是使用readelf命令查看SO庫(kù)函數(shù)的方法:

1. 打開(kāi)終端,進(jìn)入SO庫(kù)所在的目錄

2. 輸入以下命令,查看SO庫(kù)中的符號(hào)表:

readelf -s xxx.so

其中,-s表示顯示符號(hào)表

3. 查找你要查看的函數(shù)名,如果該函數(shù)被定義在SO庫(kù)中,它就會(huì)在列表中出現(xiàn),其地址就是第三列的十六進(jìn)制數(shù)值

4. 接下來(lái)可以查看該函數(shù)的定義,使用objdump命令,輸入以下命令:

objdump -D xxx.so | grep 函數(shù)名

其中,-D表示反匯編所有節(jié)(section)的內(nèi)容,然后使用grep命令過(guò)濾出包含該函數(shù)名的內(nèi)容。

三、使用nm、readelf和objdump聯(lián)合使用查看SO庫(kù)函數(shù)

以上兩種方法都可以查看SO庫(kù)中的符號(hào)表及函數(shù)地址,但是只能通過(guò)objdump命令查看函數(shù)的定義。如果想要更直接地查看函數(shù)的定義,那么可以將這三個(gè)命令聯(lián)合使用。以下是具體步驟:

1. 打開(kāi)終端,進(jìn)入SO庫(kù)所在的目錄

2. 輸入以下命令,查看符號(hào)表:

nm -D xxx.so | grep 函數(shù)名

其中,-D表示顯示動(dòng)態(tài)符號(hào)表,grep命令用于過(guò)濾出包含該函數(shù)名的條目。這個(gè)命令會(huì)顯示出函數(shù)的地址和符號(hào)名。

3. 接下來(lái)使用以下命令,查看函數(shù)的定義:

objdump -D xxx.so | grep -A20 -B20 函數(shù)名

其中,-A20表示顯示函數(shù)名后面20行對(duì)象的內(nèi)容,-B20表示顯示函數(shù)名前面20行的內(nèi)容。這樣就可以直接查看函數(shù)的定義了。

以上就是在Linux下查看SO接口函數(shù)的方法,希望對(duì)你有所幫助。不過(guò)需要注意的是,這種查看方法只適用于開(kāi)發(fā)人員,在日常使用中更好不要?jiǎng)覵O文件、靜態(tài)庫(kù)文件、可執(zhí)行文件等,否則可能會(huì)導(dǎo)致系統(tǒng)崩潰。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

請(qǐng)教關(guān)于android linux動(dòng)態(tài)庫(kù).so的加載調(diào)用

1、 .so動(dòng)態(tài)庫(kù)的生成

可使用gcc或者g++編譯器生成動(dòng)態(tài)庫(kù)文件(此處以g++編譯器為例)

g++ -shared -fPIC -c XXX.cpp

g++ -shared -fPIC -o XXX.so XXX.o

2、 .so動(dòng)態(tài)庫(kù)的動(dòng)態(tài)調(diào)用接口函數(shù)說(shuō)明

動(dòng)態(tài)庫(kù)的調(diào)用關(guān)系可以在需要調(diào)用動(dòng)態(tài)庫(kù)的程序編譯時(shí),通過(guò)g++的-L和-l命令來(lái)指定。例如:程序test啟動(dòng)時(shí)需要加載目錄/root/src/lib中的libtest_so1.so動(dòng)態(tài)庫(kù),編譯命令可照如下編寫(xiě)執(zhí)行:

g++ -g -o test test.cpp –L/root/src/lib –ltest_so1

(此處,我們重點(diǎn)講解動(dòng)態(tài)庫(kù)的動(dòng)態(tài)調(diào)用的方法,關(guān)于靜態(tài)的通過(guò)g++編譯命令調(diào)用的方式不作詳細(xì)講解,具體相關(guān)內(nèi)容可上網(wǎng)查詢)

Linux下,提供專門(mén)的一組API用于完成打開(kāi)動(dòng)態(tài)庫(kù)慧蘆,查找符號(hào),處理出錯(cuò),關(guān)閉動(dòng)態(tài)庫(kù)等功能。

下面對(duì)這些接口函數(shù)逐一介紹(調(diào)用這些接口時(shí),需引用頭文件#include ):

1)dlopen

函數(shù)原型:void *dlopen(const char *libname,int flag);

功能描述:dlopen必須在dlerror,dlsym和dlclose之前調(diào)用,表示要將庫(kù)裝載到內(nèi)存,準(zhǔn)備使用。如果要裝載的庫(kù)依賴于其它庫(kù),必須首先裝載依賴庫(kù)。如果dlopen操作失敗,返回NULL值;如果庫(kù)已經(jīng)被裝載過(guò),則dlopen會(huì)返回同樣的句柄。

參數(shù)中的libname一般是庫(kù)的全路徑,這樣dlopen會(huì)直接裝載該文件;如果只是指定了庫(kù)名稱,在dlopen會(huì)按照下面的機(jī)制去搜尋:

a.根據(jù)環(huán)境變量LD_LIBRARY_PATH查找

b.根據(jù)/etc/ld.so.cache查找

c.查找依次在/lib和/usr/lib目錄查找。

flag參數(shù)表示處理未定義函數(shù)的方式,可以使用RTLD_LAZY或RTLD_NOW。RTLD_LAZY表示暫時(shí)不去處理未定義函數(shù),迅搜先把庫(kù)裝載到內(nèi)存,等用到?jīng)]定義的函數(shù)再說(shuō);RTLD_NOW表示馬上檢查是否存在未定義的函數(shù),若存在,則dlopen以失敗告終。

2)dlerror

函數(shù)原型:char *dlerror(void);

功能描述:dlerror可以獲得最近一次dlopen,dlsym或dlclose操作的錯(cuò)誤信息,返回NULL表示無(wú)錯(cuò)誤。dlerror在返回錯(cuò)誤信息的同時(shí),也會(huì)清除錯(cuò)誤信息。

3)dlsym

函數(shù)原型:void *dlsym(void *handle,const char *symbol);

功能描述:在dlopen之后,庫(kù)被裝載到內(nèi)存。dlsym可以獲得指定函數(shù)(symbol)在內(nèi)前昌帶存中的位置(指針)。如果找不到指定函數(shù),則dlsym會(huì)返回NULL值。但判斷函數(shù)是否存在更好的方法是使用dlerror函數(shù),

4)dlclose

函數(shù)原型:int dlclose(void *);

功能描述:將已經(jīng)裝載的庫(kù)句柄減一,如果句柄減至零,則該庫(kù)會(huì)被卸載。如果存在析構(gòu)函數(shù),則在dlclose之后,析構(gòu)函數(shù)會(huì)被調(diào)用。

3、 普通函數(shù)的調(diào)用

此處以源碼實(shí)例說(shuō)明。各源碼文件關(guān)系如下:

test_so1.h和test_so1.cpp生成test_so1.so動(dòng)態(tài)庫(kù)。

test_so2.h和test_so2.cpp生成test_so2.so動(dòng)態(tài)庫(kù)。

test_dl.cpp生成test_dl可執(zhí)行程序,test_dl通過(guò)dlopen系列等API函數(shù),并使用函數(shù)指針以到達(dá)動(dòng)態(tài)調(diào)用不同so庫(kù)中test函數(shù)的目的。

請(qǐng)問(wèn)我有一個(gè).so文件,如何在Linux下編程使用呢?

Linux下的.so是基于linux下的動(dòng)態(tài)鏈接,其功能和作用類似與windows下.dll文件。

下面是關(guān)于.so的介紹:

一、引言

通常情況下,對(duì)函數(shù)庫(kù)的鏈接是放在編譯時(shí)期(compile time)完成的。所有相關(guān)的對(duì)象文件(object file)與牽涉到的函數(shù)庫(kù)(library)被鏈接合成一個(gè)可執(zhí)行文件(executable file)。程序在運(yùn)行時(shí),與函數(shù)庫(kù)再無(wú)瓜葛,因?yàn)樗行枰暮瘮?shù)已拷貝到自己門(mén)下。所以這些函數(shù)庫(kù)被成為靜態(tài)庫(kù)(static libaray),通常文件名為“l(fā)ibxxx.a”的形式。

其實(shí),我們也可以把對(duì)一些庫(kù)函數(shù)的鏈接載入推遲到程序運(yùn)行的時(shí)期(runtime)。這就是如雷貫耳的動(dòng)態(tài)鏈接庫(kù)(dynamic link library)技術(shù)。

二、動(dòng)態(tài)鏈接庫(kù)的特點(diǎn)與優(yōu)勢(shì)

首先讓我們來(lái)看一下,把庫(kù)函數(shù)推遲到程序運(yùn)行時(shí)期載入的好處:

1. 可以實(shí)現(xiàn)進(jìn)程之間的資源共享。

什么概念呢?就是說(shuō),某個(gè)程序的在運(yùn)行中要調(diào)用某個(gè)動(dòng)態(tài)鏈接庫(kù)函數(shù)的時(shí)候,操作系統(tǒng)首先會(huì)查看所有正在運(yùn)行的程序,看在內(nèi)存里是否已有此庫(kù)函數(shù)的拷貝了。如果有,則讓其共享那一個(gè)拷貝;只有沒(méi)有才鏈接載入。這樣的模式雖然會(huì)帶來(lái)一些“動(dòng)態(tài)鏈接”額外的開(kāi)銷,卻大大的節(jié)省了系統(tǒng)的內(nèi)存資源。C的標(biāo)準(zhǔn)庫(kù)就是動(dòng)態(tài)鏈接庫(kù),也就是說(shuō)系統(tǒng)中所有運(yùn)行的程序共享著同一個(gè)C標(biāo)準(zhǔn)庫(kù)的代碼段。

2. 將一些程序升級(jí)變得簡(jiǎn)單。用戶只需要升級(jí)動(dòng)態(tài)鏈接庫(kù),而無(wú)需重新編譯鏈接其他原有的代碼就可以完成整個(gè)程序的升級(jí)。Windows 就是一個(gè)很好的例子。

3. 甚至可以真正坐到鏈接載入完全由程序員在程序代碼中控制。

程序員在編寫(xiě)程序的時(shí)候,可以明確的指明什么時(shí)候或者什么情況下,鏈接載入哪個(gè)動(dòng)態(tài)鏈接庫(kù)函數(shù)。你可以有一個(gè)相當(dāng)大的軟件,但每次運(yùn)行的時(shí)候,由于不同的操作需求,只有一小部分程序被載入內(nèi)存。所有的函數(shù)本著“有需求才調(diào)入”的原則,于是大大節(jié)省了系統(tǒng)資源。比如現(xiàn)在的軟件通常都能打開(kāi)若干種不同類型的文件,這些讀寫(xiě)操作通常都用動(dòng)態(tài)鏈接庫(kù)來(lái)實(shí)現(xiàn)。在一次運(yùn)行當(dāng)中,一般只有一種類型的文件將會(huì)被打開(kāi)。所以直到程序知道文件的類型以后再載入相應(yīng)的讀寫(xiě)函數(shù),而不是一開(kāi)始就將所有的讀寫(xiě)函數(shù)都載入,然后才發(fā)覺(jué)在整個(gè)程序中根本沒(méi)有用到它們。

三、動(dòng)態(tài)鏈接庫(kù)的創(chuàng)建

由于動(dòng)態(tài)鏈接庫(kù)函數(shù)的共享特性,它們不會(huì)被拷貝到可執(zhí)行文件中。在編譯的時(shí)候,編譯器只會(huì)做一些函數(shù)名之類的檢查。在程序運(yùn)行的時(shí)候,被調(diào)用的動(dòng)態(tài)鏈接庫(kù)函數(shù)被安置在內(nèi)存的某個(gè)地方,所有調(diào)用它的程序?qū)⒅赶蜻@個(gè)代碼段。因此,這些代碼必須實(shí)用相對(duì)地址,而不是絕對(duì)地址。在編譯的時(shí)候,我們需要告訴編譯器,這些對(duì)象文件是用來(lái)做動(dòng)態(tài)鏈接庫(kù)的,所以要用地址不無(wú)關(guān)代碼(Position Independent Code (PIC))。

對(duì)gcc編譯器,只需添加上 -fPIC 標(biāo)簽,如:

gcc -fPIC -c file1.c

gcc -fPIC -c file2.c

gcc -shared libxxx.so file1.o file2.o

注意到最后一行,-shared 標(biāo)簽告訴編譯器這是要建立動(dòng)態(tài)鏈接庫(kù)。這與靜態(tài)鏈接庫(kù)的建立很不一樣,后者用的是 ar 命令。也注意到,動(dòng)態(tài)鏈接庫(kù)的名字形式為 “l(fā)ibxxx.so” 后綴名為 “.so”

四、動(dòng)態(tài)鏈接庫(kù)的使用

使用動(dòng)態(tài)鏈接庫(kù),首先需要在編譯期間讓編譯器檢查一些語(yǔ)法與定義。

這與靜態(tài)庫(kù)的實(shí)用基本一樣,用的是 -Lpath 和 -lxxx 標(biāo)簽。如:

gcc file1.o file2.o -Lpath -lxxx -o program.exe

編譯器會(huì)先在path文件夾下搜索libxxx.so文件,如果沒(méi)有找到,繼續(xù)搜索libxxx.a(靜態(tài)庫(kù))。

在程序運(yùn)行期間,也需要告訴系統(tǒng)去哪里找你的動(dòng)態(tài)鏈接庫(kù)文件。在UNIX下是通過(guò)定義名為 LD_LIBRARY_PATH 的環(huán)境變量來(lái)實(shí)現(xiàn)的。只需將path賦值給此變量即可。csh 命令為:

setenv LD_LIBRARY_PATH   your/full/path/to/dll

一切安排妥當(dāng)后,你可以用 ldd 命令檢查是否連接正常。

ldd program.exe

動(dòng)態(tài)鏈接庫(kù)*.so的編譯與使用- –

動(dòng)態(tài)庫(kù)*.so在linux下用c和c++編程時(shí)經(jīng)常會(huì)碰到,最近在網(wǎng)站找了幾篇文章介紹動(dòng)態(tài)庫(kù)的編譯和鏈接,總算搞懂了這個(gè)之前一直不太了解得東東,這里做個(gè)筆記,也為其它正為動(dòng)態(tài)庫(kù)鏈接庫(kù)而苦惱的兄弟們提供一點(diǎn)幫助。

1、動(dòng)態(tài)庫(kù)的編譯

下面通過(guò)一個(gè)例子來(lái)介紹如何生成一個(gè)動(dòng)態(tài)庫(kù)。這里有一個(gè)頭文件:so_test.h,三個(gè).c文件:test_a.c、test_b.c、test_c.c,我們將這幾個(gè)文件編譯成一個(gè)動(dòng)態(tài)庫(kù):libtest.so。

so_test.h:

#include   “stdio.h”

void test_a();

void test_b();

void test_c();

test_a.c:

#include “so_test.h”

void test_a()

{

printf(“this is in test_a…/n”);

}

test_b.c:

#include “so_test.h”

void test_b()

{

printf(“this is in test_b…/n”);

}

test_a.c:

#include “so_test.h”

void test_c()

{

printf(“this is in test_c…/n”);

}

將這幾個(gè)文件編譯成一個(gè)動(dòng)態(tài)庫(kù):libtest.so

$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so

2、動(dòng)態(tài)庫(kù)的鏈接

在1、中,我們已經(jīng)成功生成了一個(gè)自己的動(dòng)態(tài)鏈接庫(kù)libtest.so,下面我們通過(guò)一個(gè)程序來(lái)調(diào)用這個(gè)庫(kù)里的函數(shù)。程序的源文件為:test.c。

test.c:

#include “so_test.h”

int main()

{

test_a();

test_b();

test_c();

return 0;

}

l 將test.c與動(dòng)態(tài)庫(kù)libtest.so鏈接生成執(zhí)行文件test:

$ gcc test.c -L. -ltest -o test

l 測(cè)試是否動(dòng)態(tài)連接,如果列出libtest.so,那么應(yīng)該是連接正常了

$ ldd test

l 執(zhí)行test,可以看到它是如何調(diào)用動(dòng)態(tài)庫(kù)中的函數(shù)的。

3、編譯參數(shù)解析

最主要的是GCC命令行的一個(gè)選項(xiàng):

-shared 該選項(xiàng)指定生成動(dòng)態(tài)連接庫(kù)(讓連接器生成T類型的導(dǎo)出符號(hào)表,有時(shí)候也生成弱連接W類型的導(dǎo)出符號(hào)),不用該標(biāo)志外部程序無(wú)法連接。相當(dāng)于一個(gè)可執(zhí)行文件

l -fPIC:表示編譯為位置獨(dú)立的代碼,不用此選項(xiàng)的話編譯后的代碼是位置相關(guān)的所以動(dòng)態(tài)載入時(shí)是通過(guò)代碼拷貝的方式來(lái)滿足不同進(jìn)程的需要,而不能達(dá)到真正代碼段共享的目的。

l -L.:表示要連接的庫(kù)在當(dāng)前目錄中

l -ltest:編譯器查找動(dòng)態(tài)連接庫(kù)時(shí)有隱含的命名規(guī)則,即在給出的名字前面加上lib,后面加上.so來(lái)確定庫(kù)的名稱

l LD_LIBRARY_PATH:這個(gè)環(huán)境變量指示動(dòng)態(tài)連接器可以裝載動(dòng)態(tài)庫(kù)的路徑。

l 當(dāng)然如果有root權(quán)限的話,可以修改/etc/ld.so.conf文件,然后調(diào)用 /in/ldconfig來(lái)達(dá)到同樣的目的,不過(guò)如果沒(méi)有root權(quán)限,那么只能采用輸出LD_LIBRARY_PATH的方法了。

4、注意

調(diào)用動(dòng)態(tài)庫(kù)的時(shí)候有幾個(gè)問(wèn)題會(huì)經(jīng)常碰到,有時(shí),明明已經(jīng)將庫(kù)的頭文件所在目錄 通過(guò) “-I” include進(jìn)來(lái)了,庫(kù)所在文件通過(guò) “-L”參數(shù)引導(dǎo),并指定了“-l”的庫(kù)名,但通過(guò)ldd命令察看時(shí),就是死活找不到你指定鏈接的so文件,這時(shí)你要作的就是通過(guò)修改 LD_LIBRARY_PATH或者/etc/ld.so.conf文件來(lái)指定動(dòng)態(tài)庫(kù)的目錄。通常這樣做就可以解決庫(kù)無(wú)法鏈接的問(wèn)題了。

-lxx

xx是你的.so文件名

其實(shí)使用方法和你使用數(shù)學(xué)庫(kù)函數(shù)是一樣的,

源代碼

中添加

#include ,編譯的時(shí)候,加上-lm參數(shù)。

注:linux下的.so文件為共享庫(kù),相當(dāng)于windows下的dll文件。

擴(kuò)展資料: 

linux下編寫(xiě)調(diào)用so文件實(shí)例

.so是Linux(Unix)下的

動(dòng)態(tài)鏈接庫(kù)

. 和.dll類似. 

比如:

文件有: a.c, b.c, c.c 

gcc -c a.c 

gcc -c b.c 

gcc -c c.c 

gcc -shared libXXX.so a.o b.o c.o 

要使用的話也很簡(jiǎn)單. 比如編譯d.c, 使用到libXXX.so中的函數(shù), libXXX.so地址是MYPATH 

gcc d.c -o d -LMYPATH -lXXX 

注意不是-llibXXX

test.c文件和一個(gè)test.h,這兩個(gè)文件要生成libsotest.so文件。然后我還有一個(gè)testso.c文件,在這個(gè)文件里面調(diào)用libsotest.so中的函數(shù)。

編寫(xiě)的過(guò)程中,首先是編譯so文件,我沒(méi)有編寫(xiě)makefile文件,而是參考的2里面說(shuō)的直接寫(xiě)的gcc命令。

因?yàn)閟o文件里面沒(méi)有

main函數(shù)

,所以是不可執(zhí)行的,所以編譯的時(shí)候要加上-c,只生成目標(biāo)文件。

linux下的.so文件為共享庫(kù),相當(dāng)于windows下的dll文件,使用方法如下:

在你的工程源代碼里包含.h頭文件,然后可以調(diào)用動(dòng)態(tài)庫(kù)里的函數(shù),在鏈接的時(shí)候加上如下編譯器參數(shù):

-l xx.so

如果你的so文件是以lib開(kāi)頭的,還可以直接這樣使用:

-lxx

xx是你的.so文件名

其實(shí)使用方法和你使用數(shù)學(xué)庫(kù)函數(shù)是一樣的,源代碼中添加

#include ,編譯的時(shí)候,加上-lm參數(shù)。

動(dòng)態(tài)鏈接庫(kù),調(diào)用,寫(xiě)c語(yǔ)言時(shí)用的。放在編譯的文件夾里面。包含進(jìn)去.h就行了、、、、、、、、

安裝個(gè)開(kāi)發(fā)工具 然后編譯就行了 redhat在安裝的時(shí)候選擇自定義就可以安裝開(kāi)發(fā)工具 make 然后make install

關(guān)于linux查看so接口函數(shù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!


網(wǎng)站欄目:輕松學(xué)會(huì)Linux下查看SO接口函數(shù)方法(linux查看so接口函數(shù))
當(dāng)前URL:http://www.dlmjj.cn/article/djdgjgp.html