AIX平台上的静态库中缺少模板代码

时间:2012-03-06 19:13:24

标签: templates compilation aix

我有一个静态库“static_library.a”,它包含AIX系统上的以下对象(通过“ar tv”验证):

  • template_code.o
  • misc_code1.o
  • misc_code2.o

当我与“static_library.a”链接时,由于“template_code.cpp”缺少(模板)代码而导致错误

这只发生在AIX上(适用于SGI和SUN)

我已经查阅了有关模板的AIX编译器文档。

注意: 1.我不能使用共享对象

我错过了什么?

1 个答案:

答案 0 :(得分:1)

自动模板实例化可能在不同平台上存在问题。您可以尝试手动实例化类。

语法可从各种来源在线获取。

例如: http://www.devx.com/tips/Tip/12652

显式实例化应该在定义所有方法的文件的底部完成。

另一种方法是使完整的模板源代码可用于静态库之外的对象代码。

我无权访问该编译器,但IBM的此页面建议对库进行显式模板实例化。 ftp://ftp.software.ibm.com/software/rational/docs/docset/doc/cpf_4.2/ccase_ux/ccbuild/ccbuild-69.html

当然,我排除了您使用单向链接器的可能性,并且需要静态库的链接器行必须具有正确的顺序。