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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 10 11 [12]
166  Qt / Установка, сборка, отладка, тестирование / Re: Трабла со статической сборкой Qt 4.4.3 (.lib-ы с 4-кой на конце) : Декабрь 14, 2008, 17:56
Цитировать
Значит что-то ты не так скомпилил.
lib-ы при статике получаются как раз без номера и прекрасно линкуются.

Трудно не согласиться, очевидно, ошибка у меня, иначе бы ни у кого ничего не работало. Улыбающийся
Однако, "что-то" довольно трудно исправить, хотелось бы конкретики, что именно требуется к исправлению.
Что именно сделано, я указал в первом сообщении, а что требуется исправить, хотелось бы узнать у вас. Улыбающийся
Я, к сожалению, в программировании под Win32 опыта большого не имею, т.к. основной опыт приобретен в 90-е годы, на TC2.0 и BC3.1, где самой крутой библиотекой была Turbo Vision.

Цитировать
2 PinkPanther, ты определись для начала с компилятором, а потом уже со всем остальным.

Я бы хотел использовать компилятор VC++ и среду VS2008. Т.е. редактировать, компилировать и собирать проекты средствами VS2008, которая, вероятнее всего, будет использоваться какие-то нативные средства Qt, типа MOC, которые добавит интегратор... чем собирать саму Qt, мне совершенно все равно. Чем нужно, тем и соберу. Главное, чтобы потом все из неё работало в VS2008. Пока, после успешной конфигурации (с ключом -platform win32-msvc2008 - запустилось после прописывания пути к бинарникам VC в PATHе) nmake вылетел с ошибками компиляции MySQL-модуля (ключ -qt-sql-mysql). Грустный

Еще вопрос - как собрать Qt, чтобы можно было выбирать, какой именно вариант сборки использовать? В VS есть опция, которая, например, позволяет делать этот выбор в MFC-проектах (что мы используем - dll или все-в-исполняемом). В случае с Qt нужно делать две независимые сборки? Или нужно ставить 2 Qt и две VS2008? Или каждый раз пересобирать Qt, если нужно перейти с динамики на статику? Или это крайне затруднительно?
167  Qt / Установка, сборка, отладка, тестирование / Re: Трабла со статической сборкой Qt 4.4.3 (.lib-ы с 4-кой на конце) : Декабрь 14, 2008, 15:38
Цитировать
Т.е. если вы собрали библиотеку Qt с помощью одного компилятора, то и собственную программу, которая будет использовать dll'ки Qt, должны компилировать этим же компилятором.
(взято тут)
GCC незнает кто такие *.lib у него свои типы файлов (*.a)

С .dll проблем, в общем и целом, нет. Но .dll - это динамические библиотеки. В этом случае надо будет вкладывать их в инсталл-пакет для того, чтобы приложение гарантированно работало на другом компьютере. Я собираю все в один файл, и .dll в этом случае не нужны. В этом случае VC использует файлы с расширением .lib, т.е. статические библиотеки. Вот ман, который я использовал для статической сборки Qt:
http://www.crossplatform.ru/documentation/qtdoc4.3/deployment-windows.php#static-linking
Там, в частности, сказано:
"Как только configure закончит работу, введите следующее:

 nmake sub-src

Это соберет Qt статически. Заметьте, что в отличие от динамической сборки, в результате статической сборки библиотеки Qt будут без номера версии, например, QtCore4.lib будет QtCore.lib. Кроме того, мы использовали nmake во всех примерах, но если вы используете MinGW вместо него вы должны воспользоваться mingw32-make."

То, что указано тут, не происходит - lib-ы, несмотря на ключ, имеют номер версии на конце и VC к ним не обращается. Единственно, что может (теоретически) иметь негативные последствия - я не использовал ключ -platform win32-msvc2008 при конфигурации Qt, т.к. его использование приводит к ошибке:
Код:
...<skipped>...
Creating qmake...
execute: File or path is not found (nmake)
execute: File or path is not found (nmake)
Cleaning qmake failed, return code -1

P.S. Запустил сборку с помощью nmake вместо mingw32-make, о результатах отпишусь. Улыбающийся
168  Qt / Установка, сборка, отладка, тестирование / Re: Трабла со статической сборкой Qt 4.4.3 (.lib-ы с 4-кой на конце) : Декабрь 14, 2008, 14:11
/*в шоке*/

Вы уверены что точно описали свои действия? Если так то получается вы собираете Qt одним компилятором, а приложения пытаетесь другим Улыбающийся Не выйдет, читайте ман по установке Qt.

Ну да, все верно. Qt компилируется с помощью g++, в последствии я использую VС. Интегратор, насколько я понимаю, выполняет работу по объединению средств Qt и MSVS (добавляет разные визуальные средства, а также MOC для обработки хеадеров, добавляет директории). Какая зависимость от компилятора при компилировании приложений с использованием  .lib-файлов, содержащих машинный код, я, если честно, не понял. Улыбающийся
169  Qt / Установка, сборка, отладка, тестирование / Трабла со статической сборкой Qt 4.4.3 (.lib-ы с 4-кой на : Декабрь 14, 2008, 01:34
Господа! Возникла странная трабла, надеюсь на помощь.

Сконфигурил и собрал Qt 4.4.3 commercial под VS2008 Prof, в следующей последовательности:
1) configure -static (+ключи для нужного)
2) mingw32-make sub-scr
3) установил интегратор 1.4.3

Тишь да гладь, ни ворнингов, ни еггогов. После этого захожу в VS, внешне все тоже чудно, QT прописалась в IDE, но при этом не могу собрать ни один из своих старых проектов - нужная библиотека Qt (в моем случае это QtCored.lib) в папке Qt с либами имеет название QtCored4.lib, и сборщик ее, естественно, не находит. Пытался читерить - переименовывать либу, отрезая 4-ку, но ничего это не дало, стали появляться ошибки при сборке. Не подскажите, что делаю не так? В мануале по статической сборке говорится, что, если верхние два пункта выполнены, библиотеки изначально не должны иметь в названии номер версии (4-ку).
Страниц: 1 ... 10 11 [12]

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