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
файлы и сравните две версии.