日期:2014-05-16  浏览次数:20559 次

编译多个模块
一个项目有多个模块,它们之间有依赖关系,怎么写一个Makefile 才能把这些模块的符号表导出到一个Module.symvers 文件里,写了很久,就是没搞出来。现在的办法是根据依赖关系去拷指定的Module.symvers 文件,感觉不是很方便,如果有的模块依赖多个其他的模块,经常就会出错,如果能把所有的符号表导出到一个或是所有模块的Module.symvers 文件里就好了。不知道可不可行,请高手指点

------解决方案--------------------
源文件数目多吗
不多的话,全量编译得了呵
------解决方案--------------------
编译成库,用到的库链进来。
------解决方案--------------------
大型的软件都是多个Makefile,分层来处理问题。。。。。一个就全解决的似乎很少见。
------解决方案--------------------
怎么没有人说autotools automake之类的东西来生成makefile~
------解决方案--------------------
测试的例子,输出符号表到map文件

gcc -o mtest -I ./ main.cpp -L . -ltest -lstdc++ -Wl,-Map,aa.map

gcc -o hello hello.c -Wl,-Map,test.map

------解决方案--------------------
链接即可:

CFLAGS += -I/你的源代码目录

LDFLAGS += -L/你的.so/.a库目录.
------解决方案--------------------
你不就是想把所有的符号表导出到一个文件中吗?为什么一定要在MAKEFILE上做文章呢?、
换个思路想想,其实只需要编译完成后,把生成的符号表文件合并到一个统一的符号表文件中就行了。合并文件应该比较简单吧,随便找个脚本工具就能轻松搞定了