编译代码方法

问题一:

文件中有inline函数,编译时提示“multiple definition of ...”。

解决:

在inline函数前面加static 修饰符

 

问题二:

“__you_cannot_kmalloc_that_much” 是因为hash函数太长了,不能超过16K(8k是正常的)。

 

问题三:

若文件相互包含,则编译时很容易发生问题。

解决方法一: 在其中一个文件中 先声明 一下

 

若上面还有问题, 则用"解决方法二":  某个.c文件包含 头文件的顺序反了。

比如 asd_kernel.h 与 asd_extent.h相互包含

而 asd_extent.c 既包含 asd_kernel.h ,又包含 asd_extent.h

则 在asd_extent.c文件中,

顺序一:

include "asd_extent.h"

include "asd_kernel.h"

这样编译就会有问题。

 

顺序二:

include "asd_kernel.h"

include "asd_extent.h"

这样编译就不会有问题


问题四: 

在编译的过程中有可能出现 “incomplete pointer” 类似的东西, 这是因为你引用结构体在这里还没有定义。 

原因: 

1 你没有包含相应的头文件

2 那个结构体是在某个.c文件中定义的

3 那个结构体在你使用后面定义的

你可能感兴趣的:(编译代码方法)