Включить статическую библиотеку в статическую библиотеку в netbeans

Я включаю заголовок для статической библиотеки "libChild.a" во вторую статическую библиотеку "libParent.a", а затем связываю оба родителя с родителем в моем основном приложении, но получаю "неопределенную ссылку" для символов в родительском объекте, определяются у ребенка. Я использую netbeans 7.0 для создания как статических библиотек, так и копирования файлов.a в /usr/lib и копирования файлов заголовков в /usr/include. Я использую свойства проекта netbeans, чтобы добавить обе библиотеки в основной проект.

Интересно, что детская библиотека используется сама по себе непосредственно в главном коде проекта, и эти ссылки компилируются просто отлично. Это только использование дочернего элемента, находящегося в родительском статическом lib, что приводит к неопределенным ссылочным ошибкам.

Одним из решений было бы объединение статических библиотек с помощью инструмента "ar". К сожалению, это нецелесообразно, так как существует несколько версий каждого из них, и придется отдельно создавать слияние для каждой комбинации, а затем повторно объединяться каждый раз, когда изменение было сделано в одной версии либо..

Итак, почему сборка netbeans делает правильную ссылку на ссылки на дочерние символы в основном коде, но не в статическом коде родительской библиотеки? Как мне заставить это работать?

1 ответ

Просто столкнулась с той же проблемой, которая основана на недоразумении.

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

Решение прост, просто добавьте все необходимые библиотеки в конфигурацию компоновщика основного приложения. Родительские/детские отношения между libs не имеют значения.

(В netbeans: свойства/компоновщик/библиотеки /addLibraryFile)

licensed under cc by-sa 3.0 with attribution.