連線確定的庫

2021-06-06 18:37:25 字數 867 閱讀 3878

。雖然我們包括了正確的標頭檔案,但

是我們在編譯的時候還是要連線確定的庫。在linux 下,為了使用數學函式,我們必須和

數學庫連線,為此我們要加入 -lm 選項。

gcc -o temp temp.c –lm

這樣才能夠正確的編譯。對於一些常用的函式的實現,gcc 編譯器會自動去連線一些常

用庫,這樣我們就沒有必要自己去指定了。有時候我們在編譯程式的時候還要指定庫的路徑,

這個時候我們要用到編譯器的 -l 選項指定路徑。比如說我們有乙個庫在

/home/hoyt/mylib 下,這樣我們編譯的時候還要加上 -l/home/hoyt/mylib。對於一

些標準庫來說,我們沒有必要指出路徑.只要它們在起預設庫的路徑下就可以了。系統的預設

庫的路徑/lib /usr/lib /usr/local/lib 在這三個路徑下面的庫,我們可以不指定路徑。

還有乙個問題,有時候我們使用了某個函式,但是我們不知道庫的名字,這個時候怎麼辦

呢?很抱歉,對於這個問題我也不知道答案,我只有乙個傻辦法.首先,我到標準庫路徑下面去

找看看有沒有和我用的函式相關的庫,我就這樣找到了執行緒(thread)函式的庫檔案(libp

thread.a). 當然,如果找不到,只有乙個笨方法.比如我要找sin 這個函式所在的庫. 就只

好用 nm -o /lib/*.so|grep sin>~/sin 命令,然後看~/sin 檔案,到那裡面去找了. 在s

in 檔案當中,我會找到這樣的一行libm-2.1.2.so:00009fa0 w sin 這樣我就知道了sin 在

libm-2.1.2.so 庫裡面,我用 -lm 選項就可以了(去掉前面的lib 和後面的版本標誌,就剩

下m 了所以是 -lm).

確定的現在,不確定的未來!

希望我們未來都能遇見更優秀 更快樂的自己!2020.02.29 由於疫情的影響,無法正常復工,只有偶爾去公司值班。最近也看了很多的文章,有關於疫情,有關於工作模式,有關於未來,說實話,看完以後還是蠻有壓力的,也是應該給自己一些憂患意識了,總結一下,大概有以下幾點 1 企業模式的未來 說到能力,這個太...

生成動態連線庫 靜態連線庫的 makefile

靜態連線庫 擴充套件名為 a 是.o檔案的簡單集合。在 linux unix下,使用 ar 命令生成靜態連線庫。動態連線庫 擴充套件名為.so 是將.o檔案集合,並增加了匯出表。匯出表是乙個函式名 函式索引 函式位址的陣列。因此,應用程式可以裝載 使用 ldopen函式 後,根據函式名,匯出函式的索...

資料庫設計主鍵的確定

資料庫的設計涉及到乙個小問題 那就是主鍵的確定。主鍵就是一行記錄的唯一性的確定的一列 或 幾列,但是可選性其實就比較大了 主鍵的確定問題 我就騎驢的計一下 乙個問題,主鍵跟業務邏輯 的關係 網上的前輩們都說跟業務邏輯關係相關性小比較好,但是一直不太懂 其實算是前輩們經驗之談了吧 因為在實際應用中 資...