Неверная запись в архиве TOC о создании StaticLib - PullRequest
3 голосов
/ 21 сентября 2011

В настоящее время я работаю над проектом, который создает статическую библиотеку и три исполняемых файла, которые ссылаются на эту библиотеку. На чистой сборке, когда я пытаюсь создать библиотеку на OSX 10.7.1, она будет собираться правильно. Однако, если это не чистая сборка, я получаю эту ошибку.

ld: in ./libframework.a, malformed archive TOC entry for GameApp::~GameApp(), offset 222233108   is beyond end of file 3056 for architecture x86_64

Без изменения каких-либо настроек сборки, если я получу чистую сборку после получения этой ошибки, она будет скомпилирована без проблем. Ошибка связывания не всегда относится к одной и той же записи. Если я закомментирую дескриптор, он будет ссылаться на другую запись.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Ошибка здесь в том, что оглавление статической библиотеки необходимо обновить при перекомпиляции. Чтобы исправить это, в ar можно добавить флаг -s или выполнить ranlib после компиляции библиотеки, но перед компоновкой.

0 голосов
/ 27 июня 2016

Я исправил проблему, удалив файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...