Header-File

x86_64 linux核心標頭檔的路徑

  • September 2, 2016

我想使用一些 linux 核心標頭檔來編譯程序。但是,如果我只是添加-I/usr/src/linux-headers-4.4.0-36/include它找不到linux/export.h. 我在arch/architecture中看到了同名的文件,但我找不到amd64or x86_64uname -pmix86_64 x86_64 x86_64arch在我的情況下,正確的目錄是什麼?

系統Linux Mint帶有來自儲存庫的核心4.4.0.-36

UPD:我想使用

#include <linux/platform_device.h>
#include <linux/usb/g_hid.h>

你好.cpp:

#include <linux/platform_device.h>
#include <linux/usb/g_hid.h>

int main ()
{
   return 0; // nothing
}

但是編譯器-I /usr/src/linux-headers-4.4.0-36/include -I /usr/src/linux-headers-4.4.0-36/arch/x86/include說了很多重新定義並且找不到<generated/timeconst.h>. 我在/usr/src/linux-headers-4.4.0-36-generic/include. 但是目錄中的路徑相同,-generic我也有一些錯誤。

大多數具有 32 位和 64 位變體的體系結構都位於同一arch子目錄中。隨著時間的推移,這種情況發生了變化;被x64_64合併到x862.6.24、2.6.25、2.6.29中。截至 4.7 仍然是一個單獨的架構。移至2.6.14 並最終在 2.6.27 中合併。早在2.6天就被合併了。sh64``sh``sparc64``sparc``arm64``ppc64``powerpc``ppc``mips64

所以 amd64 標頭在arch/x86.

但是你通常編譯程序是針對 libc 標頭檔,而不是針對核心標頭檔。(即使它們有時具有相同的名稱,但它們有不同的內容!)檢查您是否真的需要核心標頭檔——這只發生在使用不穩定介面的程序中,這些介面可以在核心版本之間改變(例如,一些低級調試介面)。

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