Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 无法编译qc-usb驱动程序?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Ubuntu 11.04 64位[试过SuSE 32位,得到同样的错误],我有 gcc,可以编译正常的C程序..和/usr/src/ linux-headers-2.6*中的linux头文件 我将这个驱动程序下载了: http://qce-ga.sourceforge.net/#download 下载,解压缩,运行make all,这是输出 matt: /d/dl/qc-usb-0.6.6 $ma
Ubuntu 11.04 64位[试过SuSE 32位,得到同样的错误],我有 @L_262_2@,可以编译正常的C程序..和/usr/src/ linux-headers-2.6*中的linux头文件

我将这个驱动程序下载了:
http://qce-ga.sourceforge.net/#download
下载,解压缩,运行make all,这是输出

@H_611_25@matt: /d/dl/qc-usb-0.6.6 $make all make -C "/lib/modules/2.6.38-8-generic/build" SUBDIRS="/home/matt/Desktop/dl/qc-usb-0.6.6" modules V=1 user_OPT="-DHAVE_UTSRELEASE_H=" make[1]: Entering directory `/usr/src/linux-headers-2.6.38-8-generic' test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \ echo; \ echo " ERROR: Kernel configuration is invalid."; \ echo " include/generated/autoconf.h or include/config/auto.conf are missing.";\ echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ echo; \ /bin/falsE) mkdir -p /home/matt/Desktop/dl/qc-usb-0.6.6/.tmp_versions ; rm -f /home/matt/Desktop/dl/qc-usb-0.6.6/.tmp_versions/* make -f scripts/Makefile.build obj=/home/matt/Desktop/dl/qc-usb-0.6.6 gcc -Wp,-MD,/home/matt/Desktop/dl/qc-usb-0.6.6/.qc-driver.o.d -nostdinc -isystem /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include -I/usr/src/linux-headers-2.6.38-8-generic/arch/x86/include -Iinclude -include include/generated/autoconf.h -Iubuntu/include -D__KERNEL__ -Wall -Wundef -W@R_674_10495@ct-prototypes -Wno-trigraphs -fno-@R_674_10495@ct-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONfig_AS_CFI=1 -DCONfig_AS_CFI_SIGNAL_FRAME=1 -DCONfig_AS_CFI_SECTIONS=1 -DCONfig_AS_FXSAVEQ=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dNow -Wframe-larger-than=1024 -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wno-pointer-sign -fno-@R_674_10495@ct-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DNOKERNEL -DHAVE_UTSRELEASE_H= -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASename=KBUILD_STR(qc_driver)" -D"KBUILD_MODNAME=KBUILD_STR(quickcam)" -c -o /home/matt/Desktop/dl/qc-usb-0.6.6/.tmp_qc-driver.o /home/matt/Desktop/dl/qc-usb-0.6.6/qc-driver.c In file included from /home/matt/Desktop/dl/qc-usb-0.6.6/qc-driver.c:47:0: /home/matt/Desktop/dl/qc-usb-0.6.6/quickcam.h:79:28: Fatal error: linux/autoconf.h: No such file or directory compilation terminated. make[2]: *** [/home/matt/Desktop/dl/qc-usb-0.6.6/qc-driver.o] Error 1 make[1]: *** [_module_/home/matt/Desktop/dl/qc-usb-0.6.6] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic' make: *** [quickcam.ko] Error 2

注意:我尝试了这是建议我运行[make oldconfig&&].以下是输出的URL:http://pastebin.com/ccnYn9uc

我google了一下,有人说,在内核源码中,运行make menuconfig,所以我运行它,但我不知道要改变什么..你能帮帮我吗?谢谢

解决方法

您正在尝试在2.6.38上编译,但是自2.6.33以来,包含/ linux / autoconf.h不再存在(它已在提交264a26838056fc2d759f58bec2e720e01fcb1bdb中的其他位置移动).此外,它不需要手动包含 – 内核构建系统会自动为您执行(请参阅gcc命令行中的-includE).

您不需要运行make menuconfig,并且可能不应该使用它来更改任何内容 – 已经为您的发行版配置了内核,并且将其更改为与正在运行的内核不匹配的内容可能会使模块无法正常工作.甚至不需要make oldconfig;什么看起来像一个消息说要运行make oldconfig实际上是代码来检测是否需要它并在那种情况下打印该消息(由于某种原因,您尝试编译的驱动程序启用了一些详细模式,在运行它们之前打印所有命令) .

您遇到的问题是您尝试编译的驱动程序太旧了 – sourceforge发布页面显示它是从2006年开始的,当时最新的内核仍然是2.6.18.内核内部API不稳定并且经常更改,因此即使您修复了该错误(可能只是删除了不正确的#includE),由于其他一些更改,它仍可能无法编译. Linux内核附带的驱动程序没有这个问题,因为更改API以修复所有驱动程序的人负责,但对于Linux内核树之外的驱动程序,驱动程序作者有责任密切关注内核开发并在API更改时修复其驱动程序.

您可以选择找到一个较新的驱动程序(一个在2.6.38中运行的驱动程序),或者让一个了解Linux内核的人将驱动程序更新到2.6.38.为防止它在未来中断,应将其提交给Linux内核.

事实上,内核似乎已经拥有了这些设备的驱动程序.它被称为gspca_stv06xx,并声称三个USB ID是您尝试编译声明的驱动程序 – 还有更多.

大佬总结

以上是大佬教程为你收集整理的linux – 无法编译qc-usb驱动程序?全部内容,希望文章能够帮你解决linux – 无法编译qc-usb驱动程序?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。