Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ошибка компиляции Qt
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
seven7
Добрый день.
Возникает ошибка при выполнении mingw32-make. Установка и configure прошли нормально.
Компиляция проходит минут 15 после чего вываливается.
Пишет следущее:
CODE
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo
oc -mthreads -Wl -shared -Wl,--out-implib,c:\Qt\4.3.4\lib\libQtCored4.a -o .
\lib\QtCored4.dll object_script.QtCored.Debug -L"c:\Qt\4.3.4\lib" -L"c:\Pro
Files\SQLXML 4.0\bin\" -L"c:\Qt\4.3.4\lib" -lkernel32 -luser32 -lshell32 -l
-lole32 -ladvapi32 -lws2_32 tmp\obj\debug_shared\QtCored_resource_res.o
Creating library file: c:\Qt\4.3.4\lib\libQtCored4.a
./tmp\obj\debug_shared\qfsfileengine_win.o(.text+0x836c): In function `Z8rea
kRK7QString':
C:/Qt/4.3.4/src/corelib/io/qfsfileengine_win.cpp:1333: undefined reference t
oCreateInstance@20'
./tmp\obj\debug_shared\qfsfileengine_win.o(.text+0x838b):C:/Qt/4.3.4/src/cor
/io/qfsfileengine_win.cpp:1333: undefined reference to `CoInitialize@4'
./tmp\obj\debug_shared\qfsfileengine_win.o(.text+0x83b9):C:/Qt/4.3.4/src/cor
/io/qfsfileengine_win.cpp:1333: undefined reference to `CoCreateInstance@20'


и далее подобные ошибки undefined reference

Кто может, подскажите в чем дело...
Litkevich Yuriy
а примеры (%QTDIR%\examples) скомпилились, если да, то проверь они компилятся?
ViGOur
CoInitialize определяется в objbase.h и ole32.lib, если у тебя нет их, то прийдется отказаться от поддержки OLE и ActiveX в Qt для чего требуется перегонфигурация...
seven7
Цитата(Litkevich Yuriy @ 3.5.2008, 14:15) *
а примеры (%QTDIR%\examples) скомпилились, если да, то проверь они компилятся?


ну я создал вручную простенький файлик -
pro создается, makefile создаестя
а далее после make облом.

Ну насколько я понимаю так и должно быть - библиотеки-то не скомпилировались...



Цитата(ViGOur @ 3.5.2008, 14:48) *
CoInitialize определяется в objbase.h и ole32.lib, если у тебя нет их, то прийдется отказаться от поддержки OLE и ActiveX в Qt для чего требуется перегонфигурация...


objbase.h есть в c:\MinGW\include, а ole32.lib нет.
Точнее вообще-то они есть VSные... да и разные они все,
если пихнить их вряд ли прокатит

Странно - на работе все нормально компилилось и ничего другого не ставил.



а какие нужны ключи, что бы отказаться от OLE и ActiveX ?
что-то я не нашел ничего в описании configure
ViGOur
Цитата(' date='3.5.2008, 15:24) *
если пихнить их вряд ли прокатит
Странно - на работе все нормально компилилось и ничего другого не ставил.
Я думаю ничего в этом странно нет, так как на работе у меня вообще стоит полный набор всего: SDK - полный, DDK, Qt, Boost, ACE и прочее. Все верно прописано и откуда-нибудь да подцепиться нужно тебе.
Стоит попробовать, так как для отключения, как я слышал, прийдется руками проходить какие-о там pro файлы.
К сожалению как это сделать чтобы понял mingw не знаю, так как работаю с VS. :(
Tonal
Как ставил мингву?
Какая версия пакета w32api (смотреть в одноимённом h-нике)?
seven7
Цитата(Tonal @ 3.5.2008, 18:32) *
Как ставил мингву?
Какая версия пакета w32api (смотреть в одноимённом h-нике)?


Я по разному ставил - первый раз сам, второй раз сам Qt закачивал и ставил.
__W32API_VERSION 3.2

судя по одинаковому результату (оба раза файл qfsfileengine_win.cpp, c undefined reference
к виндовым CoInitialize, CoCreateInstance) не цепляется виндовая библиотека
Litkevich Yuriy
а версия Qt'ей какая? open source хоть?
seven7
Цитата(Litkevich Yuriy @ 4.5.2008, 0:10) *
а версия Qt'ей какая? open source хоть?


самая, что на есть, банальная 4.3.4
та что с тролтеча берется: qt-win-opensource-4.3.4-mingw.exe
Tonal
Последний - __W32API_VERSION 3.11
Библиотеки в gcc называются lib%s.a, так что в твоём случае нужно искать libole2.a
Скачай с sf и распакуй в каталог с мингвой.

Судя по всему, у тебя какой-то бардак с библиотеками.
seven7
Цитата(Tonal @ 4.5.2008, 9:50) *
Последний - __W32API_VERSION 3.11
Библиотеки в gcc называются lib%s.a, так что в твоём случае нужно искать libole2.a
Скачай с sf и распакуй в каталог с мингвой.

Судя по всему, у тебя какой-то бардак с библиотеками.


Насчет бардака у меня приходили мысли, но цифру 3.2 я не сам написал - из хеадера взял.
Но в любом случае спасибо, приду домой попробую.
Litkevich Yuriy
качай Automated MinGW Installer, это MinGW'шный сетевой инсталер, он скачает все что надо и поставит сам, я им пользовался ни каких проблем неиспытываю. но предварительно снеси имеющуюся установку.
seven7
Что интересно, на систему в другом разделе все встало без проблем.
скопировал все это обратно, взамен старого и похоже, что работает,
по крайней мере собираются и примеры из examples и тестовый примерчик.

Неясно, конечно, насколько это правильно.
Поставлю эклипс видно будет...
Litkevich Yuriy
принципиально, ты можешь собрать Qt'я на одной машине и перетащить на другую простым копированием, при этом не забудь также утащить соответствующий копилер
seven7
Цитата(Litkevich Yuriy @ 5.5.2008, 9:52) *
принципиально, ты можешь собрать Qt'я на одной машине и перетащить на другую простым копированием, при этом не забудь также утащить соответствующий копилер


ну тогда из твоего утверждения следует, что собранные библиотеки не зависят ни от чего другого,
кроме как от исходного кода и компилятора.
А почему же тогда в одном случае все собирается нормально, а в другом упирается рогом?
Litkevich Yuriy
проблемы сборки это проблемы, либо конфигурации либо наличия исходников, а когда собралось значит проблем небыло и ты можешь тащить собраные Qt'я, разумеется целиком, куда угодно, т.к. в реестр ничего не прописывается, однако есть и исключения если библиотеки собраны с зависимостями сверх каталога %QTDIR% и компилятора, тогда надобудет и те зависимости тащить за собой.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.