libtool против ar для создания статической библиотеки (компоновщик xcode)

Создание статической библиотеки на Mac 10.5 с xcode через libtool и с ar через командную строку генерирует файл libMainProject.a, однако, при попытке использовать тот, что сгенерирован libtool, для связи с приложением xcode, я получаю несколько сообщений вроде

"vtable для project1, на который ссылаются из: _ZTV27project1$non _lazy _ ptr в libMainProject.a(project1.o)"

Использование ar полностью нормально и правильно связывает. Я попытался добавить опцию -c к libtool во время компоновки, но это, похоже, не оказывает влияния. Так что я думаю, что мои 2 варианта

1) Выясните, что вызывает различия в символах между версиями ar и libtool, и заставьте libtool генерировать ту же информацию.

2) Заставить xcode использовать ar вместо libtool для генерации статических библиотек.

Любые идеи или предложения будут оценены.

Заранее спасибо.

1 ответ

Я предлагаю разархивировать статическую библиотеку с ar, Вы закончите с *.o файлы. Тогда используйте gobjdump (возможно, вам придется установить его самостоятельно из MacPorts/fink/homebrew), чтобы увидеть, что находится внутри *.o файлы и сравните две версии.

Другие вопросы по тегам