0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux中動態(tài)庫的創(chuàng)建與使用

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-27 11:09 ? 次閱讀

動態(tài)庫

新建 mylib.c 文件

#include< stdio.h >

void mylib(void);

void mylib(void)
{
  printf("This is mylibn");
}

在 Ubuntu 編譯

圖片

編寫測試代碼 test.c

#include < stdio.h >

void mylib(void);

int main(void)
{
  mylib();
  return 0;
}

編譯測試文件 test.c

圖片

-l:指定動態(tài)庫的庫名
-L:指定動態(tài)庫的查找位置。
-L . 表示在當(dāng)前目錄下去查找

運(yùn)行測試 a.out

圖片

在動態(tài)庫使用是,系統(tǒng)會默認(rèn)去/lib,/usr/lib 目錄下去查找動態(tài)函數(shù)庫,如果我們使用的庫不在里面,就會提示錯誤。解決這個問題有三種方法。

第一種方法:

將生成的動態(tài)庫拷貝到/lib 或者/usr/lib 里面去,因?yàn)橄到y(tǒng)會默認(rèn)去這兩個路徑下尋找。

第二種方法:

把我們的動態(tài)庫所在的路徑加到環(huán)境變量里面去,比如我們動態(tài)庫所在的路徑為/home/test,我們就可以這樣添加,但是這種方法只在當(dāng)前設(shè)置的窗口有效。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/topeet/debug/linux_

我們加入環(huán)境后,運(yùn)行 a.out

圖片

第三種方法:

修改 ubuntu 下的配置文件/etc/ld.so.conf,我們在這個配置文件里面加入動態(tài)庫所在的位置,然后使用命令 ldconfig 更新目錄。

我們輸入以下命令編輯/etc/ld.so.conf 文件,如下圖所示:

圖片

修改完文件保存退出,輸入 ldconfig 更新目錄。運(yùn)行測試如下圖所示:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207920
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    551

    瀏覽量

    24561
  • 動態(tài)庫
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    6209
收藏 人收藏

    評論

    相關(guān)推薦

    Linux動態(tài)鏈接的基本概念

    學(xué)習(xí)Linux動態(tài)鏈接是一個繞不開的話題,我們今天就一起來看一下什么是動態(tài)鏈接、動態(tài)鏈接
    發(fā)表于 09-27 14:31 ?1444次閱讀

    Linux動態(tài)相關(guān)知識

    Linux 下有動態(tài)和靜態(tài),動態(tài)以.so為擴(kuò)展名,靜態(tài)
    的頭像 發(fā)表于 11-07 09:23 ?490次閱讀
    <b class='flag-5'>Linux</b>下<b class='flag-5'>動態(tài)</b><b class='flag-5'>庫</b>相關(guān)知識

    Linux下靜態(tài)動態(tài)的制作與使用

    什么是靜態(tài)函數(shù)?動態(tài)函數(shù)庫又是什么?linux靜態(tài)函數(shù)是怎樣創(chuàng)建并使用的?動態(tài)函數(shù)庫是怎樣
    發(fā)表于 04-26 06:45

    Linux系統(tǒng)共享編程

    一、說明 類似Windows系統(tǒng)動態(tài)鏈接,Linux也有相應(yīng)的共享用以支持代碼的復(fù)用
    發(fā)表于 09-13 16:49 ?24次下載

    C++動態(tài)鏈接創(chuàng)建和調(diào)用

    動態(tài)連接創(chuàng)建步驟: 一、創(chuàng)建Non-MFC DLL動態(tài)鏈接 1、打開File —> N
    發(fā)表于 11-24 18:13 ?7次下載

    深入分析Windows和Linux動態(tài)應(yīng)用異同

    深入分析Windows和Linux動態(tài)應(yīng)用異同 摘要:動態(tài)鏈接技術(shù)實(shí)現(xiàn)和設(shè)計程序常用的技術(shù),在Windows和
    發(fā)表于 10-22 11:36 ?1270次閱讀

    Linux下靜態(tài)動態(tài)(共享)的制作與使用

    Linux下靜態(tài)動態(tài)(共享)的制作與使用Linux
    發(fā)表于 07-09 14:39 ?1115次閱讀

    linux靜態(tài)動態(tài)分析

    的二進(jìn)制是不兼容的。 本文僅限于介紹linux下的。 2.的種類 linux下的有兩種:靜態(tài)
    發(fā)表于 11-02 10:12 ?1次下載

    你知道Linux動態(tài)鏈接創(chuàng)建與使用?

    使用GNU的工具我們?nèi)绾卧?b class='flag-5'>Linux創(chuàng)建自己的程序函數(shù)?一個“程序函數(shù)”簡單的說就是一個文件包含了一些編譯好的代碼和數(shù)據(jù),這些編譯好的代碼和數(shù)據(jù)可以在事后供其他的程序使用。
    發(fā)表于 04-28 16:45 ?1059次閱讀

    Linux下的靜態(tài)動態(tài)動態(tài)加載

    的存在極大的提高了C/C++程序的復(fù)用性,但是對于初學(xué)者來說有些難以駕馭,本文從Linux的角度淺談Linux下的靜態(tài)
    發(fā)表于 04-02 14:32 ?671次閱讀

    linux找不到動態(tài)如何解決

    解決linux找不到動態(tài)的問題
    發(fā)表于 06-13 09:43 ?2049次閱讀

    講解Linux虛擬機(jī)之使用動態(tài)和靜態(tài)

    了解 Linux 如何使用,包括靜態(tài)動態(tài)的差別,有助于你解決依賴問題。
    發(fā)表于 05-06 17:05 ?2072次閱讀
    講解<b class='flag-5'>Linux</b>虛擬機(jī)之使用<b class='flag-5'>動態(tài)</b><b class='flag-5'>庫</b>和靜態(tài)<b class='flag-5'>庫</b>

    嵌入式Linux動態(tài)和靜態(tài)使用

    以下主要介紹Linux動態(tài)、靜態(tài)、如何使用已有的動態(tài), 以及如何制作一個
    發(fā)表于 11-01 16:57 ?1次下載
    嵌入式<b class='flag-5'>Linux</b>下<b class='flag-5'>動態(tài)</b><b class='flag-5'>庫</b>和靜態(tài)<b class='flag-5'>庫</b>使用

    Linux開發(fā)_動態(tài)靜態(tài)創(chuàng)建與Makefile規(guī)則

    介紹Linux下靜態(tài)動態(tài)創(chuàng)建方式、完成靜態(tài)、動態(tài)
    的頭像 發(fā)表于 09-17 15:41 ?1061次閱讀

    Linux下的靜態(tài)鏈接動態(tài)鏈接的區(qū)別是什么?

    學(xué)習(xí)Linux動態(tài)鏈接是一個繞不開的話題,我們今天就一起來看一下什么是動態(tài)鏈接、動態(tài)鏈接
    的頭像 發(fā)表于 02-17 10:49 ?1069次閱讀
    <b class='flag-5'>Linux</b>下的靜態(tài)鏈接<b class='flag-5'>庫</b>和<b class='flag-5'>動態(tài)</b>鏈接<b class='flag-5'>庫</b>的區(qū)別是什么?