szjdb 发表于 2009-8-5 12:03:30

向傻海子兄请教ICCAVR 多文件编译问题。

向傻海子兄请教ICCAVR 多文件编译问题。
有1个MAIN函数C文件和7个外设驱动C文件,各C文件中有一些相互调用的函数,1个含常数和全局变量定义的头文件,
ICCAVR编译时总是提示引用了未申明的函数。是否应该为每个C文件建一个同名头文件并将C文件中的函数用EXTERN声明?
这样一来如果有几十个C文件,将同时产生同样数量的头文件,管理维护不是相当麻烦?有没有比较标准的或简单的做法?

另外,我看了些GCC下多文件成功编译的例子,没有为每个C文件写同名头文件,好像也并没有用EXTERN去申明全局变量和函数,难道GCC和ICCAVR有这么大的区别? GCC会自动搜索外部函数和变量?
这样一来将GCC下的编译通过的文件移植到ICCAVR岂不是工作量巨大? 需重写很多同名头文件。

望不吝赐教,先多谢了!

Gorgon_Meducer 发表于 2009-8-5 12:39:12

我不知道你看的是什么gcc工程,不过通常的做法多文件编译需要头文件来完成不同.c文件之间的信息传递。
关于多文件编译,请参考http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3239709&bbs_page_no=1&bbs_id=3039中,第十四章的内容。也可以下载我在论坛中提供的任意完整工程范例。
GCC和ICC之间通用工程模板,可以参考我最近发布的一些库函数。

szjdb 发表于 2009-8-5 16:41:48

多谢傻海子兄耐心指教,我先学习学习!
页: [1]
查看完整版本: 向傻海子兄请教ICCAVR 多文件编译问题。