2015-07-09 4 views
2

Я использую premake5 для создания сложного приложения на нескольких платформах. Мои приложения ссылаются как на статические, так и на общие/динамические внешние библиотеки. Судя по всему, существуют значительные зависимости цепочки построения, которые в этом случае прерывают созданный файл «gmake».Смешивание общих и статических библиотек

Показательный пример:

Если вы смешиваете общие и статические библиотеки в premake заявления «ссылка», GCC, кажется, запутаться и ожидать, что ваши общие ссылки библиотека на самом деле быть статические библиотеки. Когда он не может найти их, этап ссылки выходит из строя. Обычно это обрабатывается путем префикса ваших общих библиотек с помощью «-Bdynamic». К сожалению, нет способа сказать premake5, что внешняя ссылка lib является статической или динамической, поэтому вам нужно вручную исправить make-файлы, которые побеждают цель сборки.

Это своего рода шоу-стоппер. Я не думаю, что вы можете просто кормить «-Bdynamic» в linkoptions, потому что за ним должен следовать список разделяемых библиотек.

ответ

2

Кажется, что ошибка в действии gmake (или, по крайней мере, недостающая функциональность) Для них лучше всего перейти на страницу Premake на Github (https://github.com/premake/premake-core) и создать новую проблему.

И если у вас есть время, чтобы предоставить небольшой воспроизводимый проект (статический проект lib, динамический и приложение, использующее оба, каждый с только 1 cpp или какой-то простой материал + сценарий premake), и присоедините его к этот вопрос также был бы весьма признателен (и гораздо легче рассмотреть этот вопрос ^^)

+0

Определенно попадает под «недостающую функциональность». Это появилось несколько раз и не сложно исправить; Я просто не имел пропускной способности, чтобы справиться с этим сам. – starkos

+0

Если ничего другого, я думаю, что я могу работать с использованием пост-обработки скриптов на gcc-сборках. – eris0xff

+0

В качестве продолжения этого. Я заметил, что если бы я вручную перегруппировал статику вместе и динамику вместе, то по какой-то причине мне не нужны явные «-Bstatic» и «-Bdynamic». Я посмотрю, смогу ли я отследить это дальше. – eris0xff

Смежные вопросы