我尝试了几个IDEs在Linux上开发驱动程序在C.QtCreator适合我.我需要的IDE只是为intellisence(codecompletion,跳转到函数的点击...等)更快的编码。
有没有人配置QTCreator来满足这样的需求.例如,我必须做什么来获得一个结构的intellisence?
regardscamelord.
更好的办法是用 "Import Existing Project "导入linux源代码,添加ARCH所需的所有文件,创建后编辑.includes文件,删除所有列出的include目录。
然后添加一些linux使用的文件。
include
arch/<ARCH>/include
arch/<ARCH>/mach-<MACH>/include
arch/<ARCH>/<PLATFORM>/include
现在编辑.config,这是最重要的部分,添加如下内容。
#define __KERNEL__
#define __arm__
#define __LINUX_ARM_ARCH__ 7
#include <linux/kconfig.h>
这是#include,它带来了所有你最想要的autoconf东西。
做一个 make V=1 来看看 Kernel build 使用的标准定义。
如果你使用的是交叉编译器,在 "Build & Run "编译器选项卡中照常设置。
我也有同样的问题,我找到了一个解决方案,如何在Ubuntu中准备Qt Creator到linux Kernel开发。
准备好包含路径。
sudo apt-get install linux-headers-$(uname -r)
配置你的*.pro文件。
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
ARCH=arm64
SRC_PROJECT_PATH = /home/user/my_LKM_project
LINUX_HEADERS_PATH = /usr/src/linux-headers-$$system(uname -r)
SOURCES += $$system(find -L $$SRC_PROJECT_PATH -type f -name "*.c" -o -name "*.S" )
HEADERS += $$system(find -L $$SRC_PROJECT_PATH -type f -name "*.h" )
OTHER_FILES += $$system(find -L $$SRC_PROJECT_PATH -type f -not -name "*.h" -not -name "*.c" -not -name "*.S" )
INCLUDEPATH += $$system(find -L $$SRC_PROJECT_PATH -type d)
INCLUDEPATH += $$system(find -L $$LINUX_HEADERS_PATH/include -type d)
INCLUDEPATH += $$system(find -L $$LINUX_HEADERS_PATH/arch/$$ARCH/include -type d)
构建。
我找到了答案 此处. 要实现这一点,你需要添加
QMAKE_CXXFLAGS = -I/usr/src/linux-3.1.8-1-ARCH/include
QMAKE_CFLAGS = -I/usr/src/linux-3.1.8-1-ARCH/include
到所有用于构建内核模块的.pro文件。
我不允许发表评论,所以我在这里对RedEyed的回答加个评论。我必须把引号转义,否则我从find命令中得到一个错误信息。
SOURCES += $$system(find -L $$SRC_PROJECT_PATH -type f -name \"*.c\" -o -name \"*.S\" )