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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка сборки при переносе с Windows на Linux  (Прочитано 14104 раз)
Ovoshlook
Гость
« : Январь 21, 2011, 14:36 »

В общем проблема следующего характера:
Под Windows приложение собиралось и компилировалось замечательно. При запуске приложения под Linux-ом (Mandriva) Пишет сообщение об ошибке на этапе сборки:

:: warning: Qmake does not support build directories below the source directory.

Подскажите подажуйста в чем проблема ик4ак ее можно решить. Спасибо всем заранее.
Записан
JamS007
Гость
« Ответ #1 : Январь 21, 2011, 16:34 »

1. Это не ошибка, это - предупреждение от qmake.
2. Оно указывает на то, что каталог сборки должен быть на том же уровне (или ниже), что и каталог исходников.
Записан
Ovoshlook
Гость
« Ответ #2 : Январь 21, 2011, 16:50 »

То есть мне просто нужно перенести файлы с кодом моей программы в директроию, в которой например лежит сходный код SDK?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Январь 21, 2011, 16:55 »

Нет. Компилить нужно в другом месте. Допустим, ты в каталоге с файлом pro. Делаешь так:
mkdir build && cd build && qmake ../{file}.pro && make
Вместо {file} подставь нужное значение.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
b-s-a
Гость
« Ответ #4 : Февраль 04, 2011, 15:56 »

вообще-то, qmake ругается на то, что каталог сборки находится ВНУТРИ каталога исходников. Т.е. чтобы все нормально собиралось необходимо создать каталог сборки на том же уровне, что и каталог с исходниками:
/home/user/myproject - здесь исходники
/home/user/myproject-build - здесь сборка
Записан
andrew.k
Гость
« Ответ #5 : Ноябрь 27, 2011, 19:53 »

вообще-то, qmake ругается на то, что каталог сборки находится ВНУТРИ каталога исходников. Т.е. чтобы все нормально собиралось необходимо создать каталог сборки на том же уровне, что и каталог с исходниками:
/home/user/myproject - здесь исходники
/home/user/myproject-build - здесь сборка

А с чем это связано?
У меня каталог в котором лежат исходники под свн, поэтому файлы сборки мешаются при коммитах.
Я каталог сборки вынес в другое место совершенно.
Получил предупреждение. Но сборка идет. Вроде все хорошо. Дособирается. Посмотрю.
Какие могут быть проблемы?

И еще. Предупреждение похоже пишет не qmake, а qtcreator по своей инициативе, потому что в консоли сборки от qmake не видно никаких сообщений, а в сообщениях сборки есть.
Записан
andrew.k
Гость
« Ответ #6 : Ноябрь 27, 2011, 20:29 »

Собралось, даже запускается, но как-то кривовато слинковались либы.
И таких ui.dll там очень много.
Записан
andrew.k
Гость
« Ответ #7 : Ноябрь 27, 2011, 20:52 »

Оказывается это не связано с каталогом сборки. в исходном каталоге так же собирается.
Еще. В другой каталог перенести можно. Просто нужно такой же уровень вложенности почему-то.

Например.
Т.е. исходники: c:\dev\projects\project\src (4 уровня)
Каталог сборки:
верно: c:\build\projects\project\release (4 уровня)
неверно: c:\dev\projects\build\project\release (5 уровней)

Теперь остается вопрос, почему в Dll dependency ui.dll присутствует в таком количестве?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Ноябрь 27, 2011, 21:30 »

>>Просто нужно такой же уровень вложенности почему-то.
Это потому, что qmake суёт в make-файл относительные пути:
../../../path/to/file
не отслеживая где, что реально находится.
Записан

Юра.
andrew.k
Гость
« Ответ #9 : Ноябрь 27, 2011, 23:34 »

>>Просто нужно такой же уровень вложенности почему-то.
Это потому, что qmake суёт в make-файл относительные пути:
../../../path/to/file
не отслеживая где, что реально находится.
Ну так для этого не нужен такой же.
Нужен уровень вложенности не меньше чем у исходников. А он требует ровно такой же.
Записан
andrew.k
Гость
« Ответ #10 : Ноябрь 27, 2011, 23:35 »

Насчет зависимостей dll есть мысли у кого-нибудь?
Нормально ли это?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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