Howto prepare QTCreator for linux driver & kernel development

匿名 (未验证) 提交于 2019-12-03 01:29:01

问题:

i tried a few IDEs on linux to develop driver in C. QtCreator suits best for me. I need the IDE just for the intellisence (codecompletion, jump to functions on click.. etc.) for quicker coding.

Has anyone configured QTCreator for such needs. E.g. what do i have to do to get intellisence for a struct?

regards camelord.

回答1:

A better solution is to import the linux source with "Import Existing Project". Add all the files your ARCH requires. Once created edit the .includes file and remove all the include dirs listed.

Then just add the few that linux uses.

include arch//include arch//mach-/include arch///include 

Now edit .config, this is the best bit. Add something like the following.

#define __KERNEL__ #define __arm__ #define __LINUX_ARM_ARCH__ 7  #include 

It's the #include that brings in all of the autoconf stuff you mostly want.

Do a make V=1 to see the standard defines that the Kernel build uses.

Also if you're using a cross compiler, set up as usual in "Build & Run" Compilers tab.



回答2:

I have the same problem. I found a solution, how to prepare Qt Creator to the linux Kernel development in the Ubuntu.

Prepare include paths:

  1. Create Non-Qt project (Plan C-Project).
  2. Add your files to project.
  3. Download your linux-headers. On Ubuntu 14.04 sudo apt-get install linux-headers-$(uname -r)
  4. Configuring your *.pro file:

    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) 

Building:

  1. Create Makefile
  2. In the Qt Creator go to the "Projects" and unset the "Shadow build"
  3. In the "Build Steps" remove all items and add "make" item. In the make item in the first field set make, in the second field set command for your Makefile.
    Also you can set your build script.


回答3:

I found answer here. To acomplish this you need to add

QMAKE_CXXFLAGS = -I/usr/src/linux-3.1.8-1-ARCH/include QMAKE_CFLAGS = -I/usr/src/linux-3.1.8-1-ARCH/include 

to all .pro files that are used for building kernel modules.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!