LINUX.ORG.RU

QBS директивы cpp.dynamicLibraries:[] и list.push() - по каким правилам они ищут библиотеку ?

 , , ,


0

1

Суть проблемы такова: Есть QBS-проект с директивами list.push(«ce»); list.push(«ce-python»);

ссылающимися на пакаджи librts-ce-dev, librts-ce-python соответственно.

И на бильд-хосте всё собирается замечательно. А вот уже на нескольких локальных машинах разработчиков постепенно возникла проблема с директивой list.push(«ce»); :-1: error: cannot find ce: File format not recognized

варианты list.push(«ce-dev») и list.push(«ce0») не помогают

Помогает только прямая ссылка на файл - list.push(«/usr/lib/libce.so»);

но тут встаёт на дыбы Высокое Руководство и камитить ТАКОЕ не позволяет.

Хочу найти в Сети правила по которым QBS должен превратить «ce» в «/usr/lib/libce.so», чтобы понять как и почему на некоторых компьютерах эти правила сбоят

Правило можно посмотреть в исходниках

property stringList dynamicLibraries // list of names, will be linked with -lname

Для каждого имени из списка dynamicLibraries генерируется опция линкера -lname. Вам, видимо, надо ещё -L (свойство cpp.dynamicLibraryPrefix?).

fluorite ★★★★★
()
Ответ на: комментарий от fluorite

решение

оказалось что QBS спотыкается на том что в home существует каталог одноимённый библиотеке - ~/ce тема закрыта

korogodin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.