日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux / pkg-config 原理及用法

發布時間:2024/10/14 linux 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux / pkg-config 原理及用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、pkgconfig 有什么用

大家應該都知道用第三方庫,就少不了要使用到第三方的頭文件和庫文件。我們在編譯、鏈接的時候,必須要指定這些頭文件和庫文件的位置。

對于一個比較大第三方庫,其頭文件和庫文件的數量是比較多的。如果我們一個個手動地寫,那將是相當麻煩的。所以,pkg-config 就應運而生了。pkg-config 能夠把這些頭文件和庫文件的位置指出來,給編譯器使用。如果你的系統裝有 uuid,可以嘗試一下下面的命令

pkg-config --cflags uuid

結果

-I/usr/include/uuid

可以看到其輸出是 uuid 的頭文件的路徑。

我們平常都是這樣用 pkg-config 的。

gcc main.c `pkg-config --cflags --libs uuid` -o main

上面的編譯命令中,`pkg-config --cflags --libs uuid` 的作用就如前面所說的,把 uuid 的頭文件路徑和庫文件列出來,讓編譯去獲取。--cflags 和 --libs 分別指定頭文件和庫文件。

二、配置環境變量

看到這里,大家可能想試一下將 pkg-config 用于自己的庫。下面就說一下,怎么寫。

首先要明確一點,因為 pkg-config 也只是一個命令,所以不是你安裝了一個第三方的庫,pkg-config 就能知道第三方庫的頭文件和庫文件所在的位置。pkg-config 命令是通過查詢 XXX.pc 文件而知道這些的。我們所需要做的是,寫一個屬于自己的庫的 .pc 文件。

但 pkg-config 又是如何找到所需的 .pc 文件呢?這就需要用到一個環境變量 PKG_CONFIG_PATH 了。這環境變量寫明 .pc 文件的路徑,pkg-config 命令會讀取這個環境變量的內容,這樣就知道 pc 文件了。

對于 Ubuntu 系統,可以用 root 權限打開 /etc/bash.bashrc 文件。在最后輸入下面的內容。

? ? ? ??

這樣,pkg-config 就會去 /usr/local/lib/pkgconfig 目錄下,尋找 .pc 文件了。如果不是 Ubuntu 系統,那就沒有 /etc/bash.bashrc 文件,可以參考我的一篇博文,來找到一個合適的文件,修改這個環境變量。輸入bash命令使得配置生效。

三、pc 文件書寫規范

好了,現在我們開始寫自己的 .pc 文件。只需寫 5 個內容即可:Name、Description、Version、Cflags、Libs。

? ? ? ??比如簡單的:

Name: opencv Description:OpenCV pc file Version: 2.4 Cflags:-I/usr/local/include Libs:-L/usr/local/lib –lxxx –lxxx

其中 Name 對應的內容要和這個 pc 文件的文件名一致。當然為了書寫方便還會加入一些變量,比如前綴變量 prefix 。下面有一個更完整的 pc 文件的內容? ? ? ?

其中,Cflags 和 Libs 的寫法,是使用了-I -L -l 這些 gcc 的編譯選項。

轉載:pkg-config原理及用法 - stardsd - 博客園

(SAW:Game Over!)

?

?

總結

以上是生活随笔為你收集整理的linux / pkg-config 原理及用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。