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

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

Страниц: 1 2 3 [4]   Вниз
  Печать  
Автор Тема: Трабла со статической сборкой Qt 4.4.3 (.lib-ы с 4-кой на  (Прочитано 41518 раз)
wyvern
Гость
« Ответ #45 : Декабрь 17, 2008, 15:50 »

я правильно понимаю, что
nmake sub-doc - собирает документацию
nmake sub-demos - собирает демки
nmake sub-examples - собирает примеры?
« Последнее редактирование: Декабрь 17, 2008, 16:15 от wyvern » Записан
Detonator
Гость
« Ответ #46 : Декабрь 17, 2008, 16:20 »

а кого как, а у меня
NMAKE : fatal error U1073: don't know how to make 'sub-doc'
Stop.
Записан
wyvern
Гость
« Ответ #47 : Декабрь 17, 2008, 16:21 »

пытаюсь понять логику этих ключей, откуда они берутся
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #48 : Декабрь 17, 2008, 17:42 »

пытаюсь понять логику этих ключей, откуда они берутся

Открой QTDIR\Makefile
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
wyvern
Гость
« Ответ #49 : Декабрь 19, 2008, 08:32 »

наконец и у меня получилось собрать

вот мой рецепт, вдруг кому пригодится (вполне возможно, что в нем есть что-то лишнее, или я все же что-то упустил):

1) переменные окружения:
QTDIR = C:\Qt\4.4.3
QMAKESPEC = win32-msvc2005
PATH = %PATH%;%QTDIR%\bin

если собираете какой-нибудь сторонний плагин, то добавьте путь до его инклудов в INCLUDE

2) bat-файл:
call "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"

cd %QTDIR%

nmake distclean

configure -platform win32-msvc2005 -static -release -plugin-sql-odbc -plugin-sql-sqlite -no-sql-sqlite -no-phonon -no-webkit -no-phonon-backend -no-assistant-webkit

nmake sub-src
nmake sub-tools
nmake sub-plugins
nmake sub-sql

3) свободного места на диске, куда собираете, иметь гигов 17 (если собирать все через nmake без ключей)
« Последнее редактирование: Декабрь 19, 2008, 15:16 от wyvern » Записан
wyvern
Гость
« Ответ #50 : Декабрь 19, 2008, 09:04 »

только вот опять проблема появилась.

собрал я статические плагины (если правильно выражаюсь, а то совсем запутался в терминах).

появились они в папке %QTDIR%\plugins\sqldrivers (qsqlite.lib, qsqloci.lib, qsqlodbc.lib)

пытаюсь их подключить к проекту по Assistant:

в main.cpp:
Код
C++ (Qt)
#include <QtPlugin>
 
QT_BEGIN_NAMESPACE
Q_IMPORT_PLUGIN(qoci)
QT_END_NAMESPACE

в *.pro:
Код
C++ (Qt)
QTPLUGIN += qoci

в итоге сборка проекта оканчивается ошибкой:
error LNK2019: unresolved external symbol "class QObject * __cdecl qt_plugin_instance_qoci(void)" (?qt_plugin_instance_qoci@@YAPAVQObject@@XZ) referenced in function "public: __thiscall StaticqociPluginInstance::StaticqociPluginInstance(void)" (??0StaticqociPluginInstance@@QAE@XZ)   main.obj
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #51 : Декабрь 19, 2008, 10:16 »

Добавь в проектный файл библиотеки статический  плагинов  через LIBS +=

QTPLUGIN += qoci в проекте лишнее

Записан
wyvern
Гость
« Ответ #52 : Декабрь 19, 2008, 10:39 »

Добавь в проектный файл библиотеки статический  плагинов  через LIBS +=

QTPLUGIN += qoci в проекте лишнее

сделал:
LIBS += ... /
-qsqloci

не помогло.

может, нужно в свойствах проекта прописать пути к этим плагинам?

я пробовал добавить путь в Linker->General->Additional Library Directories
не помогло
Записан
Detonator
Гость
« Ответ #53 : Декабрь 19, 2008, 11:59 »

А что такое должен делать "nmake distclean" ?

У меня он выдает
NMAKE : fatal error U1073: don't know how to make 'distclean'
Stop.

Но и без него вчера 4.5 beta1 в статике без проблем скомпилилась.
Записан
wyvern
Гость
« Ответ #54 : Декабрь 19, 2008, 12:05 »

nmake distclean - очищает от предыдущей установки. если ничего не было установлено, то он и не работает. это нормально, как я думаю. просто вызывается на всякий случай, вдруг переставляем конфигурацию, тогда надо удалить старую установку. мне кажется, что-то похожее делает nmake confclean (где-то его встречал), но я его не пробовал
Записан
wyvern
Гость
« Ответ #55 : Декабрь 19, 2008, 12:08 »

а можно использовать в проекте статической сборки динамические библиотеки, например, для работы с БД?
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #56 : Декабрь 19, 2008, 14:21 »

Добавь в проектный файл библиотеки статический  плагинов  через LIBS +=

QTPLUGIN += qoci в проекте лишнее

сделал:
LIBS += ... /
-qsqloci

не помогло.

может, нужно в свойствах проекта прописать пути к этим плагинам?

я пробовал добавить путь в Linker->General->Additional Library Directories
не помогло

Наверно и не поможет при добавлении к библиотекам
-qsqloci
Что за минус и где расширение
У тебя же нет реально файла с именем -qsqloci.lib  ?
Записан
wyvern
Гость
« Ответ #57 : Декабрь 19, 2008, 14:40 »

поясни, пожалуйста. что-то я не догоняю

1) Qt собрана статически

2) собрал OCI по алгоритму
set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %QTDIR%\src\plugins\sqldrivers\oci
qmake oci.pro
nmake

в результате в C:\Qt\4.4.3\plugins\sqldrivers появились файлы qsqlocid.lib и qsqloci.lib

dll-ки не появились (наверно, из-за стат. сборки Qt)

что не так в pro-файле?

LIBS += -lgdi32 \
    -lcomdlg32 \
    -loleaut32 \
    -limm32 \
    -lwinmm \
    -lwinspool \
    -lws2_32 \
    -lole32 \
    -luser32 \
    -lmsimg32 \
    -lshell32 \
    -lkernel32 \
    -luuid \
    -ladvapi32 \
    -L%QTDIR\plugins\sqldrivers\qsqloci.lib% \
    -loci
Записан
wyvern
Гость
« Ответ #58 : Декабрь 19, 2008, 14:51 »

Добавь в проектный файл библиотеки статический  плагинов  через LIBS +=

QTPLUGIN += qoci в проекте лишнее

что скажешь на это?
http://www.prog.org.ru/topic_2325_0.html
http://doc.trolltech.com/4.3/plugins-howto.html#static-plugins (ниже таблицы)
« Последнее редактирование: Декабрь 19, 2008, 15:08 от wyvern » Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #59 : Декабрь 19, 2008, 17:29 »

Посмотри проектный файл:

-L%QTDIR\plugins\sqldrivers\qsqloci.lib% \

это такой путь или шутка?.

А при статической сборке Qt да и не только я бы посоветовал собирать не плагин для базы а вкомпилировать
работу с базой в саму Qt.

На примере MYQSL опции конфигурации Qt выглядят в этом случае так:
configure -release -static  -qt-sql-mysql -I c:\mysqlDEV\include -L c:\mysqlDEV\lib -l libmysql

В проектном файле разрабатываемого приложении достаточно следующего:
QT +=   sql
Записан
Страниц: 1 2 3 [4]   Вверх
  Печать  
 
Перейти в:  


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