Linux

創建指向不在預期目錄中的標頭檔的軟連結

  • July 22, 2018
3.12.6-300.fc20.x86_64 #1 SMP Mon Dec 23 16:44:31 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Fedora 20

我正在嘗試從原始碼安裝星號,當我執行 ./configure 腳本時,出現以下錯誤:

checking for uuid_generate_random in -luuid... yes
checking uuid/uuid.h usability... no
checking uuid/uuid.h presence... no
checking for uuid/uuid.h... no
checking for uuid_generate_random in -le2fs-uuid... no
checking for uuid_generate_random... no
configure: error: *** uuid support not found (this typically means the uuid development package is missing)

但是,我已經安裝了 64 位版本的 uuid 和 uuid-devel

Name        : uuid-devel
Arch        : x86_64
Version     : 1.6.2
Release     : 21.fc20
Size        : 21 k
Repo        : installed   
Name        : uuid
Arch        : x86_64
Version     : 1.6.2
Release     : 21.fc20
Size        : 116 k
Repo        : installed

所以我猜它正在尋找標頭檔並且找不到它。檢查 uuid/uuid.h 可用性…否

當我執行時,locate uuid.h我可以在以下目錄中看到 uuid.h:

/usr/include/uuid.h
/usr/include/linux/uuid.h
/usr/src/kernels/3.12.6-300.fc20.x86_64+debug/include/linux/uuid.h
/usr/src/kernels/3.12.6-300.fc20.x86_64+debug/include/uapi/linux/uuid.h
/usr/src/kernels/3.12.7-300.fc20.x86_64+debug/include/linux/uuid.h
/usr/src/kernels/3.12.7-300.fc20.x86_64+debug/include/uapi/linux/uuid.h

因此,在嘗試解決問題時,我創建了一個新目錄 /usr/include/uuid 並在其中創建了指向該 uuid.h 的軟連結。

lrwxrwxrwx. 1 root root 9 Jan 15 11:49 uuid.h -> ../uuid.h

它現在有效:

checking uuid/uuid.h usability... yes
checking uuid/uuid.h presence... yes
checking for uuid/uuid.h... yes

我的問題是,是否可以通過創建軟連結來處理像這樣安裝的標頭檔?我總是擔心如果我破壞了某些東西,因為您需要 root 訪問權限來創建軟連結。許多還有另一種解決方案,無需創建這些軟連結。

我通常不鼓勵您以這種方式操縱庫的包含。僅僅因為文件名稱相似並不意味著它是您正在尋找的正確標頭檔。

順便說一句,您正在尋找這個包。

$ sudo yum install libuuid libuuid-devl

我發現這一點的方式就是我始終建議在任何 Fedora/CentOS/RHEL 系統上查找失去文件的方式。

例子

$ sudo yum whatprovides "*/uuid/uuid.h"
...
libuuid-devel-2.23.1-3.fc19.i686 : Universally unique ID library
Repo        : fedora
Matched from:
Filename    : /usr/include/uuid/uuid.h



libuuid-devel-2.23.1-3.fc19.x86_64 : Universally unique ID library
Repo        : fedora
Matched from:
Filename    : /usr/include/uuid/uuid.h



libuuid-devel-2.23.2-4.fc19.i686 : Universally unique ID library
Repo        : updates
Matched from:
Filename    : /usr/include/uuid/uuid.h
..

引用自:https://unix.stackexchange.com/questions/109370