Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Ovoshlook от Январь 21, 2011, 14:36



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

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

Подскажите подажуйста в чем проблема ик4ак ее можно решить. Спасибо всем заранее.


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: JamS007 от Январь 21, 2011, 16:34
1. Это не ошибка, это - предупреждение от qmake.
2. Оно указывает на то, что каталог сборки должен быть на том же уровне (или ниже), что и каталог исходников.


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: Ovoshlook от Январь 21, 2011, 16:50
То есть мне просто нужно перенести файлы с кодом моей программы в директроию, в которой например лежит сходный код SDK?


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: Пантер от Январь 21, 2011, 16:55
Нет. Компилить нужно в другом месте. Допустим, ты в каталоге с файлом pro. Делаешь так:
mkdir build && cd build && qmake ../{file}.pro && make
Вместо {file} подставь нужное значение.


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: b-s-a от Февраль 04, 2011, 15:56
вообще-то, qmake ругается на то, что каталог сборки находится ВНУТРИ каталога исходников. Т.е. чтобы все нормально собиралось необходимо создать каталог сборки на том же уровне, что и каталог с исходниками:
/home/user/myproject - здесь исходники
/home/user/myproject-build - здесь сборка


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

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

И еще. Предупреждение похоже пишет не qmake, а qtcreator по своей инициативе, потому что в консоли сборки от qmake не видно никаких сообщений, а в сообщениях сборки есть.


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: andrew.k от Ноябрь 27, 2011, 20:29
Собралось, даже запускается, но как-то кривовато слинковались либы.
И таких ui.dll там очень много.


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: andrew.k от Ноябрь 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 присутствует в таком количестве?


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: lit-uriy от Ноябрь 27, 2011, 21:30
>>Просто нужно такой же уровень вложенности почему-то.
Это потому, что qmake суёт в make-файл относительные пути:
../../../path/to/file
не отслеживая где, что реально находится.


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


Название: Re: Ошибка сборки при переносе с Windows на Linux
Отправлено: andrew.k от Ноябрь 27, 2011, 23:35
Насчет зависимостей dll есть мысли у кого-нибудь?
Нормально ли это?