如何为Linux驱动程序和内核开发准备QTCreator

我尝试了几个IDE在Linux上开发驱动程序在C. QtCreator最适合我。 为了更快的编码,我只需要IDE就可以实现智能化(codecompletion,跳转到点击等function)。

有没有人configurationQTCreator这样的需求。 例如,我需要做什么才能获得一个结构intellisence?

问候camelord。

更好的解决方案是用“Import Existing Project”导入linux源代码。 添加您的ARCH需要的所有文件。 一旦创建,编辑.includes文件并删除列出的所有包含目录。

然后添加一些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的东西。

做一个使V = 1看标准定义内核版本使用。

另外,如果您正在使用交叉编译器,请在“Build&Run”编译器选项卡中照常设置。

我也有同样的问题。 我找到了一个解决方案,如何准备Qt Creator到Ubuntu的linux内核开发。

准备包含路径:

  1. 创建非Qt项目(Plan C-Project)。
  2. 将您的文件添加到项目。
  3. 下载你的linux头文件。 在Ubuntu 14.04 sudo apt-get install linux-headers-$(uname -r)
  4. 配置您的* .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) 

建造:

  1. 创建Makefile
  2. 在Qt Creator中,转到“项目”并取消“Shadow build”
  3. 在“构建步骤”中删除所有项目并添加“make”项目。 在第一个字段中的make项中设置make,在第二个字段中为你的Makefile设置命令。
    你也可以设置你的构建脚本。

我在这里找到答案。 为了实现这个,你需要添加

 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文件。