首先看看这个:http://ybin.cc/tools/clion-for-linux-driver-developer/

鉴于Clion当前在支持Linux内核代码上还有一堆问题,上面这个方案算是勉强可用。

基于Clion 2018.2,对上面的方案做一点改进:

  • add_definitions(-DKBUILD_MODNAME=\"YOUR_MODNAME\") 用以解决module_xxx宏展开的问题;
  • add_executable(xxx xxx) 需要引入全部代码文件;
  • set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -include your_kernel/include/linux/kconfig.h") 需要使用gnu99,因为Linux代码用了很多gnu扩展,不需要-nostdinc,之前需要应该是老版本Clion的bug,强制include kconfig.h能解决IS_ENABLED等宏找不到的问题;

当前效果看起来除了不能编译,其他的还算不错。

Logo

更多推荐