Chinaunix

标题: 关于模板函数编译的问题 [打印本页]

作者: mytch    时间: 2005-08-11 11:25
标题: 关于模板函数编译的问题
主程序中包含了声明模板函数的头文件,其实现编译成libXX.o,make的时候提示信息是相关的函数未定义,于是只好把实现的源文件包含在主程序中,虽然这样编译是通过了,我想问的是用什么手段可以不在主程序中包含模板地实现代码通过编译
作者: renstone921    时间: 2005-08-11 11:35
标题: 关于模板函数编译的问题
不可能吧,应当是把实现文件的源程序和模板函数的头文件放在一起,然后主程序编译包含头文件。

如果象你所说的可以编译,那么能不能告诉我你用的是什么编译器。你看一下STL的话,会发现它们没有实现文件,只有头文件。反正我用VC6和GCC都是的这样做。
作者: mytch    时间: 2005-08-11 11:49
标题: 关于模板函数编译的问题
原帖由 "renstone921" 发表:
不可能吧,应当是把实现文件的源程序和模板函数的头文件放在一起,然后主程序编译包含头文件。

如果象你所说的可以编译,那么能不能告诉我你用的是什么编译器。你看一下STL的话,会发现它们没有实现文件,只有头?.........


看来我没说清楚,函数实现文件当中也包含了函数声明的头文件,你说得跟我做的没有没有本质区别阿,用的编译器是g++
作者: renstone921    时间: 2005-08-11 14:01
标题: 关于模板函数编译的问题
不行,编译器没有那么强大。编译器所做的工作就相当于汇编和c里面的宏替换,如果你将其编译成.o的话,模板无法实例化。
作者: heijude    时间: 2005-08-11 16:56
标题: 关于模板函数编译的问题
也就是说,当实现中包含模板和内联的时候,就不可以作成.o的模块供其它模块调用了?
是不是这意思?
作者: renstone921    时间: 2005-08-11 17:54
标题: 关于模板函数编译的问题
是!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2