0
時,我想按照這個article約V4L2的司機寫作。ioport.h錯誤編譯用v412程序
但我的第一個基本的嘗試,當我包括媒體/用v412-dev.h(因爲我想訪問喜歡VFL_TYPE_GRABBER一些宏)失敗。
媒體/用v412-dev.h包括LINUX/device.h中包括LINUX/ioport.h,與此輸出崩潰:
In file included from /usr/src/linux/include/linux/device.h:16,
from /usr/src/linux/include/media/v4l2-dev.h:14,
from driv.c:11:
/usr/src/linux/include/linux/ioport.h:19: error: expected specifier-qualifier-list before ‘resource_size_t’
/usr/src/linux/include/linux/ioport.h:116: error: expected declaration specifiers or ‘...’ before ‘resource_size_t’
/usr/src/linux/include/linux/ioport.h:116: error: expected declaration specifiers or ‘...’ before ‘resource_size_t’
/usr/src/linux/include/linux/ioport.h:121: error: expected declaration specifiers or ‘...’ before ‘resource_size_t’
[...]
源:
gcc -I/usr/src/linux/arch/x86/include -I/usr/src/linux/include -o prog prog.c
:
#include <asm/types.h>
#include <linux/videodev2.h>
#include <media/v4l2-dev.h>
int main(int argc, char **argv) {
return 0;
}
我編譯
它發生在2.6.32-37-仿製PAE用gcc 4.4.3的glibc 2.10 我試了Gentoo的相同與內核頭文件和gcc的近似等價版本。
我在做什麼錯?
編輯:顯示確切的包含路徑。
對不起,這可能聽起來_really_光顧......但你硬是用'gcc的-I/path編譯/到/ -o包括PROG prog.c'還是你指定包括'-I'後路徑? –
我不想在報價中寫出確切的路徑,我會在將來避免這種錯誤理解。實際上,我指向包含內核頭文件。 – roro
我很確定'asm/*。h'不打算直接被用戶空間程序包含。它們相當於glibc頭文件的'bits/*。h'的內核頭文件,並被其他頭文件(主要是'linux/*。h')間接包含。你應該閱讀關於如何使用這個API而不是貨物的文檔... –