Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
hello, i am poor in english and linux.
The MinGW+MSYS+QT4 is ok,but i don't know howto compile kiax with them. what things i should ? steps?
please help, thank you !
Yes, windows compilation is a bit of a hell. Let's try to summarize it.
Are you able to compile Qt examples? If yes, this means you have a good mingw32-make setup. Then proceed this way:
Download windows support libraries from sourceforge:
Or, alternatively, instead of using the binary libs which are compiled using MinGW (GCC 3.4.5). You can download all of those libraries as source and compile them - all of them are open source. I have provided the binary libs just to make the exercise easier. Remember you will have to have the same GCC version (3.4 at least) if you decide to compile.
Required libraries are SQlite, Portaudio v19, iaxclient and json-c.
Put the binary files into directory "kiax2core/libs-windows" under the source root.
Supposing you are in the source root, change directory to "kiax2core", create Makefile (using qmake) and run mingw32-make:
This will build kiax2core.dll into the "release" directory.
Then, copy all binary files to the release directory in ./gui:
cp ./libs-windows/* ../gui/release
cp ./release/kiax2core.dll ../gui/release
Also, copy Qt libraries (please check where you have installed Qt and look under ./lib dir)
cp QTINSTALLDIR/lib/QtCore4.dll ../gui/release/
cp QTINSTALLDIR/lib/QtGui4.dll ../gui/release/
cp QTINSTALLDIR/lib/QtNetwork4.dll ../gui/release/
Copy MinGW support file:
cp MINGWINSTALLDIR/bin/mingwm10.dll ../gui/release/
You will need also to install OpenSSL (you can download it as binary).
Download OpenSSL and copy from its binary install directory OpenSSL libraries:
and copy them to gui/release
Now that you have all binaries in place, please make a backup :) and have them prepared when you need to repeat this.
then change directory to gui, create Makefile and run mingw32-make:
Now, you should have all needed in the "release" directory. Change to "release" and run the gui.exe file (which you can rename).
I hope this helps..
thank you !
when i complie kiax2core ,there no kiax2core release,only debug/libkiax2core.a
make -f Makefile.Debug
make: Entering directory `/d/kiax/trunk/kiax2core'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -shared -Wl,--out-implib,debug/libkiax2core.a -o debug/kiax2core.dll object_script.kiax2core.Debug -L'd:/Qt/4.4.3/lib' ./libs-windows/iaxclient.dll ./libs-windows/sqlite3.dll -lQtGuid4 -lQtCored4
Creating library file: debug/libkiax2core.a
make: Leaving directory `/d/kiax/trunk/kiax2core'
help,thank you !
OK, maybe your default Qt installation is different. Please add to your kiax2core.pro project
CONFIG -= staticlib
CONFIG += dll
And re-run qmake and then mingw32-make
This should force qmake to generate Makefile which will link the lib as DLL and not as static lib.
kiax2core is also been released in the debug file?
Looks like qmake is set up to build in debug mode. To change to release mode change in the .pro files:
CONFIG += release
I hope it helps.
make -f Makefile.Debug
make: Entering directory `/d/kiax/trunk/gui'
D:\Qt\4.4.3\bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32DEP -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'../../../Qt/4.4.3/include/QtCore' -I'../../../Qt/4.4.3/include/QtCore' -I'../../../Qt/4.4.3/include/QtNetwork' -I'../../../Qt/4.4.3/include/QtNetwork' -I'../../../Qt/4.4.3/include/QtGui' -I'../../../Qt/4.4.3/include/QtGui' -I'../../../Qt/4.4.3/include' -I'../kiax2core' -I'../kiax2core/includes' -I'../kiax2core/includes/json' -I'd:/Qt/4.4.3/include/ActiveQt' -I'debug' -I'.' -I'../../../Qt/4.4.3/mkspecs/win32-g++' -D__GNUC__ -DWIN32 Kiax2MainWindow.h -o debug/moc_Kiax2MainWindow.cpp
make: D:Qt4.4.3bin/moc.exe: Command not found
make: *** [debug/moc_Kiax2MainWindow.cpp] Error 127
make: Leaving directory `/d/kiax/trunk/gui'
make: *** [debug] Error 2
moc.exe: Command not found? why?
QTDIR and path i set correct correctly.
I guess this happens because you are using make and not mingw32-make. There are some weird behaviors of MinGW when it comes to make and PATH. I had the same problem and I had to cut all entries in the PATH leading to MinGW and then I had to use only mingw32-make.
Please test if you can compile Qt examples.
thank you very much !
when i compile gui, trobule comes.
D:/MinGW/bin/mingw32-make.exe -f Makefile.Debug
mingw32-make.exe: Entering directory `d:/kiax/trunk/gui'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32DEP -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'../../../Qt2/4.4.3/include/QtCore' -I'../../../Qt2/4.4.3/include/QtCore' -I'../../../Qt2/4.4.3/include/QtNetwork' -I'../../../Qt2/4.4.3/include/QtNetwork' -I'../../../Qt2/4.4.3/include/QtGui' -I'../../../Qt2/4.4.3/include/QtGui' -I'../../../Qt2/4.4.3/include' -I'../kiax2core' -I'../kiax2core/includes' -I'../kiax2core/includes/json' -I'd:/Qt2/4.4.3/include/ActiveQt' -I'debug' -I'.' -I'../../../Qt2/4.4.3/mkspecs/default' -o debug/Kiax2JSONBalance.o Kiax2JSONBalance.cpp
Kiax2JSONBalance.cpp: In member function `void Kiax2JSONBalance::sslHandle(const QList<QSslError>&)':
Kiax2JSONBalance.cpp:47: error: 'class QHttp' has no member named 'ignoreSslErrors'
mingw32-make.exe: *** [debug/Kiax2JSONBalance.o] Error 1
mingw32-make.exe: Leaving directory `d:/kiax/trunk/gui'
D:\MinGW\bin\mingw32-make.exe: *** [debug] Error 2
ssleay32.dll libssl32.dll libeay32.dll I copy them to gui/release. The openssl must been installed?
json-c i did not find, does it in ..\kiax2core\includes\json, is a json.h ? or .dll
what is Portaudio v19, is libportaudio-2.dll?
another ,when i modify the "face"of kiax,when i compile it, does qt4.43 support ? or only qt3 suppourt .
thank you very much !
ok，kiax is running，thanks your help！
you are welcome ;)
I hav e question？ when i compile Qt4.4.3 with MinGW,the result is ok. But when i compile kiax with Qt4.4.3compiled, there is a error. He told me that there is no member "ignoreSslErrors" in
"Qhttp" . (configure -static -release -no-exceptions. )
There is another question , when i compile qt4.4.3 with Mingw ,
configure -debug-and-release -plugin-sql-sqlite -plugin-sql-sqlite -qt-libpng -qt-libjpeg-openssl
errors come. Told me that There didn't detect sqlite3 lib and
a lot of openssl errors, that's why ? please help me ,because i want to run kiax without Qt installed.
thank you very much !
For the first question:
Depending on whether you have OpenSSL properly configured at compile time QHttp includes (or doesn't include respectively) the slot ignoreSslErrors (#ifdef decides that in compile-time). In your case when you compiled Qt you had OpenSSL and the build system took that in mind. The pre-built distributed Qt seems to not have included it by default.
Your second question:
I guess you don't need the sqlite plugin to build Qt. Kiax uses sqlite, but this has to be configured in the .pro file (the qt built-in support for sqlite is not used). Eventually, if you insist on having sqlite plugin built-in I guess you need to specify where the source and the header files of sqlite are located. I haven't personally done that yet.
Wether i need configure "-openssl" when compile Qt,does kiax need which compiled with ?
such as" configure -debug-and-release -static -openssl ".
i think kiax use openssl from outside ,not use Qt's . so i use "
configure -debug-and-release -static " to compile Qt.
thank you !