分这些个版本只是先分开知识点,编译通过了再分析,所以只是简单的把知识点拆分开,分析的并不详尽。
上一版本中,是将kangear_module拷贝到linux-3.7目录下去编译的,感觉linux-3.7为主,kangear_module为宾。下面就让它们反过来,在kangear_module下执行make命令,让kangear_module看似为主了。能实现这个效果的有一个make中的一个-C可以实现。
先解释一下这个-C,这个-C是这样的,譬如有两个目录A,B。A中什么都没有,B中有makefile,hello.c什么的。编译它的方法是一可以在B目录下运行make;也可以在A目录下运行make -C ../B/ 也是可以的,这样就点像没事找抽型的。不过可是重点。
根据上边说的V1.0中可以在kangear_module目录下执行以下命令达到V1.0的效果:
make -C /opt/kangear/kernel/linux-3.7 M=/opt/kangear/kernel/linux-3.7/kangear_module/ modules
(这次用的都是绝对路径,为了清晰。红色部分是新内容,蓝色是V1.0相同的)
可以看下边过程截图:
这个版本拆开的知识点就一个-C,不理解的可以一个劲的练习这个-C。V2.0的关系图是这样的: