Код шаблона отсутствует в статической библиотеке на платформе AIX - PullRequest
0 голосов
/ 06 марта 2012

У меня есть статическая библиотека «static_library.a», которая содержит следующие объекты (проверено через «ar tv») в системе AIX:

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

Когда я связываюсь с "static_library.a", я получаю ошибки из-за отсутствия (шаблона) кода из "template_code.cpp"

Это происходит только в AIX (работает на SGI и SUN)

Я уже посмотрел документацию компилятора AIX относительно шаблонов.

Примечание: 1. Я не могу использовать общий объект

Чего мне не хватает?

1 Ответ

1 голос
/ 06 марта 2012

Автоматическое создание шаблона может быть проблематичным на разных платформах.Вы можете попробовать создать экземпляры классов вручную.

Синтаксис доступен онлайн из различных источников.

Например: 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

Конечно,Я исключаю возможность того, что вы используете однопроходный компоновщик, и что статическая библиотека должна быть в правильном порядке в строке компоновщика.

...