Russian Qt Forum
Ноябрь 24, 2024, 18:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как класть только 1 собранную .so библиотеку в нужный каталог?  (Прочитано 3301 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Ноябрь 23, 2010, 15:00 »

Qt 4.7, Kubuntu 10.10

При сборке динамической библиотеки в Linux создается библиотека с суффиксом .so.1.0.0 и линки на нее - .so, .so.1, .so.1.0

Мне надо, чтобы файл библиотеки ложился не в тот каталог, где происходит сборка, и создаются линки, а в другой. И чтобы в этом каталоге создавался только он один. Либо не создавать линки вообще. Можно ли это сделать настройками qmake, без использования дополнительного скрипта для копирования этого файла? Это существенно, поскольку проект мультиплатформенный, а скрипт, по определению, привязывает к Linux. Установка DLLDESTDIR не помогает, по указанному маршруту копия библиотеки не образуется.
Записан

2^7-1 == 127, задумайтесь...
sadhu
Гость
« Ответ #1 : Ноябрь 23, 2010, 15:27 »

попробуй просто DESTDIR и/или TARGET, но линки все равно будут создаваться
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #2 : Ноябрь 23, 2010, 15:33 »

пробовал, это не то, мне надо или разделить библиотеку и линки, или копировать библиотеку без линков, или отключить создание линков
Записан

2^7-1 == 127, задумайтесь...
sadhu
Гость
« Ответ #3 : Ноябрь 23, 2010, 16:43 »

Лениво включать никсы ибо рабочий день подходит к концу, но по идее должно сработать так :
QMAKE_EXTRA_TARGETS +=clean_links

clean_links.commands=unlink *$$(VER_MAJ).so  *$$(VER_MAJ).$$(VER_MIN).so   *$$(VER_MAJ).$$(VER_MIN).$$(VER_PAT).so  

Но руку на отсечение бы не дал Улыбающийся

А вот так вот работает точно Улыбающийся , эт если надо линки где-то сохранять
#path to library file
fullLinkedPath=$$PWD/$$DESTDIR/
#links directory name
linksDir=links

#actions after creating lib file :
#go to destination catalog
#unlink all symlinks
#create new links in links directory
QMAKE_POST_LINK= cd $$DESTDIR && mkdir -p $$linksDir && unlink $(TARGET0) && unlink $(TARGET1) && unlink $(TARGET2) \
&& ln -fs $$fullLinkedPath/$(TARGET) $$linksDir/$(TARGET0)  && ln -fs $$fullLinkedPath/$(TARGET) $(TARGET1) $$linksDir\
&& ln -fs $$fullLinkedPath/$(TARGET) $(TARGET2) $$linksDir

а если не надо то можно сделать так :
QMAKE_LN_SHLIB=echo
« Последнее редактирование: Ноябрь 24, 2010, 13:35 от sadhu » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.104 секунд. Запросов: 22.