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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Под виндой не могу собрать многопапковый проект  (Прочитано 6516 раз)
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« : Август 05, 2009, 12:44 »

Сделал субж:
Код:
/prog.pro
/staticlib1/staticlib1.pro
/staticlib2/staticlib2.pro
/app/app.pro

app.pro линкует библиотеки staticlib1 и staticlib2
Код:
LIBS += ../staticlib1/staticlib1.a ../staticlib1/staticlib1.a

Под линуксом все собирается прекрасно.

Под виндой qmake зачем-то делает папки debug и release и туда кладет объектники, и соответственно такие указания: ../staticlib1/staticlib1.a
уже не прокатывают.

Что делать?

Я конечно понимаю что сами по себе папочки debug и release - правильное решение, но как указать путь к линкуемой статической либе из другого подпроекта не ясно... Непонимающий
Записан

Гугль в помощь
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Август 05, 2009, 12:52 »

вообще-то линк делается LIBS += -L<путь_куда_надо> -l<имя библиотеки> И расширение, и префикс lib не указываются
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #2 : Август 05, 2009, 13:14 »

"-l" - для линковки с динамической библиотекой

а для линковки со статической либой по любому необходимо указывать путь к ней. А как раз путь я не могу определить, т.к. qmake создает папку /staticlib1/debug и в нее кладет либу. И это только под виндой, под линух /staticlib1/staticlib1.a.

PS: структуру проекта задавал не я а kdevelop Улыбающийся думаю он не ошибается

может есть способ задать qmake'у чтобы он не делал так?
Записан

Гугль в помощь
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #3 : Август 05, 2009, 13:25 »

Победил для себя эту кривизну таким образом (я использую qt-sdk для винды):
в файле qt/mkspecs/default/qmake.conf удалил debug_and_release и debug_and_release_target

Но вопрос остается открытым: как правильно поступать в такой ситуации? все-таки папки debug и release правильнее
Записан

Гугль в помощь
ритт
Гость
« Ответ #4 : Август 05, 2009, 13:33 »

а слабо хотя бы DESTDIR указать? Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Август 05, 2009, 13:54 »

все равно папки дебаг и релиз будут, но при линковке должно помочь
Записан
ритт
Гость
« Ответ #6 : Август 05, 2009, 14:22 »

эти папки *должны* быть - иначе как будем собирать с CONFIG += debug_and_release ?
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #7 : Август 05, 2009, 14:31 »

а слабо хотя бы DESTDIR указать? Улыбающийся
Где? В замешательстве

ЗЫ А делаю я так потому что, программа ожидается очень большой, хочу побить классы на модули в статические либы, потом линкануть их в основном приложении.. вот что-то не получается нормально
« Последнее редактирование: Август 05, 2009, 14:36 от navrocky » Записан

Гугль в помощь
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #8 : Август 05, 2009, 14:33 »

в .pro файле написать DESTDIR = bin
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #9 : Август 05, 2009, 14:49 »

в .pro файле написать DESTDIR = bin

помогло  Веселый
Записан

Гугль в помощь
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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