Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: lad от Апрель 23, 2009, 11:12



Название: Линкер не видит QCA библиотеки
Отправлено: lad от Апрель 23, 2009, 11:12
Пытаюсь скомпилировать пример из QCA
qt-sdk-win-opensource-2009.01.1.exe установлен по умолчанию. все либы QCA подкинул в стандартные каталоги, кроме этого выполнил батник шедший с дистрибутивом.

Что сделать что бы увидел линкер либы?

Starting: C:/Qt/2009.01/mingw/bin/mingw32-make.exe -w
mingw32-make: Entering directory `C:/Qt/2009.01/qca1'
c:\Qt\2009.01\qt\bin\qmake.exe -spec ..\qt\mkspecs\win32-g++ -win32 -o Makefile qca1.pro
mingw32-make: Leaving directory `C:/Qt/2009.01/qca1'
mingw32-make: Entering directory `C:/Qt/2009.01/qca1'
C:/Qt/2009.01/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/2009.01/qca1'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\qca1.exe debug/qca1.o  -L"c:\Qt\2009.01\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `C:/Qt/2009.01/qca1'
mingw32-make: Leaving directory `C:/Qt/2009.01/qca1'
debug/qca1.o: In function `main':
C:/Qt/2009.01/qca1/qca1.cpp:35: undefined reference to `_imp___ZN3QCA11InitializerC1ENS_10MemoryModeEi'
C:/Qt/2009.01/qca1/qca1.cpp:44: undefined reference to `_imp___ZN3QCA6Base64C1ENS_9DirectionE'
C:/Qt/2009.01/qca1/qca1.cpp:49: undefined reference to `_imp___ZN3QCA12MemoryRegionC1ERK10QByteArray'
C:/Qt/2009.01/qca1/qca1.cpp:49: undefined reference to `_imp___ZN3QCA10TextFilter13arrayToStringERKNS_12MemoryRegionE'
C:/Qt/2009.01/qca1/qca1.cpp:49: undefined reference to `_imp___ZN3QCA12MemoryRegionD1Ev'
C:/Qt/2009.01/qca1/qca1.cpp:49: undefined reference to `_imp___ZN3QCA12MemoryRegionD1Ev'
C:/Qt/2009.01/qca1/qca1.cpp:57: undefined reference to `_imp___ZN3QCA6Base64C1ENS_9DirectionE'
C:/Qt/2009.01/qca1/qca1.cpp:60: undefined reference to `_imp___ZN3QCA10TextFilter12decodeStringERK7QString'
C:/Qt/2009.01/qca1/qca1.cpp:65: undefined reference to `_imp___ZN3QCA11InitializerD1Ev'
C:/Qt/2009.01/qca1/qca1.cpp:65: undefined reference to `_imp___ZN3QCA11InitializerD1Ev'
debug/qca1.o: In function `ZN3QCA10TextFilterD0Ev':
C:/Qt/2009.01/qca1/qca1.cpp:(.text$_ZN3QCA6Base64D1Ev[QCA::Base64::~Base64()]+0x39): undefined reference to `_imp___ZTVN3QCA6Base64E'
C:/Qt/2009.01/qca1/qca1.cpp:(.text$_ZN3QCA10TextFilterD2Ev[QCA::TextFilter::~TextFilter()]+0x16): undefined reference to `_imp___ZN3QCA6FilterD2Ev'
C:/Qt/2009.01/qca1/qca1.cpp:(.text$_ZN3QCA10TextFilterD0Ev[QCA::TextFilter::~TextFilter()]+0x16): undefined reference to `_imp___ZN3QCA6FilterD2Ev'
C:/Qt/2009.01/qca1/qca1.cpp:(.text$_ZN3QCA10TextFilterD1Ev[QCA::TextFilter::~TextFilter()]+0x16): undefined reference to `_imp___ZN3QCA6FilterD2Ev'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\qca1.exe] Error 1
mingw32-make: *** [debug] Error 2
Exited with code 2.
Error while building project qca1
When executing build step 'Make'


Название: Re: Линкер не видит QCA библиотеки
Отправлено: lad от Апрель 23, 2009, 11:19
нашёл
CONFIG += crypto
теперь
Starting: C:/Qt/2009.01/mingw/bin/mingw32-make.exe -w
mingw32-make: Entering directory `C:/Qt/2009.01/qca1'
c:\Qt\2009.01\qt\bin\qmake.exe -spec ..\qt\mkspecs\win32-g++ -win32 -o Makefile qca1.pro
mingw32-make: Leaving directory `C:/Qt/2009.01/qca1'
mingw32-make: Entering directory `C:/Qt/2009.01/qca1'
C:/Qt/2009.01/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/2009.01/qca1'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\qca1.exe debug/qca1.o  -L"c:\Qt\2009.01\qt\lib" -lmingw32 -lqtmaind -LC:\Qt\2009.01\qt\lib -lqcad -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `C:/Qt/2009.01/qca1'
mingw32-make: Leaving directory `C:/Qt/2009.01/qca1'
c:\Qt\2009.01\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lqcad
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\qca1.exe] Error 1
mingw32-make: *** [debug] Error 2
Exited with code 2.
Error while building project qca1
When executing build step 'Make'

почему -lqcad а не -lqcad2  ?????


Название: Re: Линкер не видит QCA библиотеки
Отправлено: lad от Апрель 23, 2009, 11:48
убрал 2-ку в имени библиотеки заработало.
почему с именем файла (...от поставщика) не работает?


Название: Re: Линкер не видит QCA библиотеки
Отправлено: Programmer2010 от Январь 18, 2011, 19:46
I'm sorry that my Russian is not fine to answer you in Russian. I'm not sure if you solved the problem already but will post the solution for all other people having the same problem like you. I had the same issue.

The problem is that the configure.exe doesn't create the debug files by default.
By default only "release compile"  will work.

If you want that debug will also be supported run
configure.exe --debug-and-release

Then
mingw32-make

Now check the lib directory.

As you can see it created:

qcad2.dll
qca2.dll
libqcad2.a
libqca2.a

Finally compile works fine.
Hope that I could help you.