2012-08-03 74 views
-2

我编译了一个使用VS2010和一些模板函数的静态库,但是当编译链接库时,我得到了该函数的未解析外部符号。我怎么能编译静态库让它链接到模板?静态库中的模板函数

回答

2

如果您有模板代码,则必须提供标题。您无法将纯模板代码编译到库中(当然,您可以编译专业化版本,但是如果您希望客户端代码能够使用模板,则需要提供标头)

+0

我试过使静态库,以保持代码隐藏... 所以唯一的方法来做到这一点将是给模板的完整源代码? – user1126068 2012-08-04 08:28:29

+0

@ user1126068如果你想要代码的用户使用模板,是的。如果您只在用户不可见的实现中使用模板,那么不可以,您可以使用模板编译非模板代码。 – juanchopanza 2012-08-04 08:30:47

+0

我在转换运算符中使用了模板,所以我不需要重载int,double,char,char * ...运算符(它们具有相同的方法) – user1126068 2012-08-04 11:42:52