Build QT statically ver 5.0.2 - qt

I am trying to build the QT static version by using the information from this link Qt - 4.7.3 - How to make static build. But i am using 5.0.2 as i have developed some applications using the same.
I am using windows 64 bit + MINGW32 and active-perl.
First-fix:
I had to comment the line number 45(if not exist %QTSRC%.gitignore goto sconf) in the file qt-everywhere-opensource-src-5.0.2\qtbase\configure.bat
My configuration command looks like this ..\qt-everywhere-opensource-src-5.0.2\configure -platform win32-g++ -static -release -no-opengl . This executed well without any errors.
Problem:
Now i run mingw32-make. And i get an error which says
/usr/bin/sh: c:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase/bin/qmake.exe: Invalid argument
mingw32-make[2]: *** [sub-tools-make_first] Error 126
I have pasted the entire error log below. Could any body please kindly point me the cause of this error or the solution.
Entire error log
C:\Qt\qt-everywhere-opensource-src-5.0.2\qt>mingw32-make
cd qtbase/ && ( test -e Makefile || C:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase/bin/qmake C:/Qt/qt-everywhere-ope
nsource-src-5.0.2/qt-everywhere-opensource-src-5.0.2/qtbase/qtbase.pro -o Makefile ) && mingw32-make -f Makefile
mingw32-make[1]: Entering directory `c:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase'
cd src/ && ( test -e Makefile || C:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase/bin/qmake C:/Qt/qt-everywhere-openso
urce-src-5.0.2/qt-everywhere-opensource-src-5.0.2/qtbase/src/src.pro -o Makefile ) && d:/tools/Dev-Cpp/MinGW32/bin/mingw
32-make -f Makefile
mingw32-make[2]: Entering directory `c:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase/src'
cd tools/ && ( test -e Makefile || c:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase/bin/qmake.exe C:/Qt/qt-everywhere-
opensource-src-5.0.2/qt-everywhere-opensource-src-5.0.2/qtbase/src/tools/tools.pro -o Makefile ) && d:/tools/Dev-Cpp/Min
GW32/bin/mingw32-make -f Makefile
/usr/bin/sh: c:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase/bin/qmake.exe: Invalid argument
mingw32-make[2]: *** [sub-tools-make_first] Error 126
mingw32-make[2]: Leaving directory `c:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase/src'
mingw32-make[1]: *** [sub-src-make_first] Error 2
mingw32-make[1]: Leaving directory `c:/Qt/qt-everywhere-opensource-src-5.0.2/qt/qtbase'
mingw32-make: *** [module-qtbase-make_first] Error 2

Static builds are supported from Qt 5.1, not 5.0. You might want to upgrade ;-)

Related

Eiffel 18.07 trying to get an ODBC connection running from examples

Trying to just compile Eiffel_18.07/examples/store/esql/ on Debian 9 I've got following error:
In file included from od243.c:202:0,
from big_file_C8_c.c:42:
/opt/Eiffel_18.07/library/store/dbms/rdbms/odbc/Clib/odbc.h:27:17: fatal error: sql.h: No such file or directory
#include <sql.h>
^
compilation terminated.
Makefile:36: recipe for target 'big_file_C8_c.o' failed
make[1]: *** [big_file_C8_c.o] Error 1
Makefile:72: recipe for target 'C8/Cobj8.o' failed
make: *** [C8/Cobj8.o] Error 2
make: *** Waiting for unfinished jobs....
an apt-get install unixodbc unixodbc-dev odbc-postgresql got me further to
gcc: error: /opt/Eiffel_18.07/library/store/spec/linux-x86-64/lib/libodbc.a: No such file or directory
Makefile:177: recipe for target 'esql' failed
When I try to go to /opt/Eiffel_18.07/library/store/dbms/rdbms/odbc/Clib thinking I'll be able to generate some code to get it working following the /opt/Eiffel_18.07/library/store/install into /opt/Eiffel_18.07/library/store/dbms/rdbms/odbc/Clib trying a sudo /opt/Eiffel_18.07/studio/spec/linux-x86-64/bin/finish_freezing -library
got
cp: cannot stat '/usr/include/eiffelstudio-18.07/config.sh': No such file or directory
Can't find config.sh.
Makefile.SH: 6: .: Can't open ./config.sh
Being a fan of Eiffel, it doesn't seem to be working out of the box and I didn't find enough documentation to get it working :-()
Here is a sequence of steps that allowed me to build the example on Ubuntu 16.04:
Download and unpack EiffelStudio in a new directory (let's denote the absolute path as #ES#).
Set environment variables:
export ISE_EIFFEL=#ES#
export ISE_PLATFORM=linux-x86-64
export PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
These commands assume bash, replace them with equivalents when using another shell.
Install package unixodbc-dev:
sudo apt-get install unixodbc-dev
Compile C code of the Eiffel library store:
cd ${ISE_EIFFEL}/library/store/dbms/rdbms/odbc/Clib
finish_freezing -library
Note: no need to prefix finish_freezing with sudo unless EiffelStudio has been installed to a path without write permissions for ordinary users. Otherwise (e.g., for the original poster of the problem on Debian 9, where EiffelStudio has been installed under /opt), permissions have to be elevated:
sudo -i
cd ${ISE_EIFFEL}/library/store/dbms/rdbms/odbc/Clib
finish_freezing -library
exit
Compile the example esql:
cd ${ISE_EIFFEL}/examples/store/esql
ec -c_compile -config esql.ecf -target esql_odbc
Run the compiled executable:
./EIFGENs/esql_odbc/W_code/esql
Login as root changed my problem instead of only doing a sudo of the finish_freezing command
sudo -i
and then
cd ${ISE_EIFFEL}/library/store/dbms/rdbms/odbc/Clib
finish_freezing -library

undefined reference to `dlsym'

I'm trying to cross compile QT for the raspberry PI 3 under Debian Stretch but when I use make -j4 to compile QT, it gives the following error:
$ make -j4>log
/home/charlie/Rpi/qt5/qtbase/lib/libQt5EglSupport.a(qeglplatformcontext.o): In function `QEGLPlatformContext::getProcAddress(char const*)':
qeglplatformcontext.cpp:(.text+0xa4): undefined reference to `dlsym'
collect2: error: ld returned 1 exit status
make[5]: *** [../../../../plugins/platforms/libqminimalegl.so] Error 1
make[4]: *** [sub-minimalegl-make_first] Error 2
make[4]: *** Waiting for unfinished jobs....
/home/charlie/Rpi/qt5/qtbase/lib/libQt5EglSupport.a(qeglplatformcontext.o): In function `QEGLPlatformContext::getProcAddress(char const*)':
qeglplatformcontext.cpp:(.text+0xa4): undefined reference to `dlsym'
collect2: error: ld returned 1 exit status
make[6]: *** [../../../../lib/libQt5EglFSDeviceIntegration.so.5.8.1] Error 1
make[5]: *** [sub-eglfsdeviceintegration-pro-make_first-ordered] Error 2
make[4]: *** [sub-eglfs-make_first] Error 2
make[3]: *** [sub-platforms-make_first] Error 2
make[2]: *** [sub-plugins-make_first] Error 2
make[1]: *** [sub-src-make_first] Error 2
make: *** [module-qtbase-make_first] Error 2
I have read a lot of similar posts containing the same dlsym error and I have tried the solutions given in them, but no luck so far. I have proceeded as it is shown in here and until now I still have doubts about the symlinks in lib directory.
When I run sudo file * | grep broken, 2 symlinks are reported to be broken, even after running the script that supposedly fixes the symlinks (as sudo).
./fixQualifiedLibraryPaths /mnt/raspberry-rootfs/ ~/Rpi/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc
The symlinks that appear to be broken are listed below:
libblas.so.3gf: broken symbolic link to /etc/alternatives/libblas.so.3gf
liblapack.so.3gf: broken symbolic link to /etc/alternatives/liblapack.so.3gf
The ./configure is executed as follows:
./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/Rpi/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/raspberry-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5pi -hostprefix /usr/local/qt5pi
Do you guys can point me out what I am doing wroing?
PD: I also installed the libncurses5 and lib32z1 and I obtained qt by git cloning.
I ran into the same problem, proceeding as you did but using the gcc-5.4.1-linaro-gnueabihf toolchain. Unfortunately I did not find the root cause, but a workaround is calling configure like
LIBS=-ldl ./configure ...
with raspbian stretch egl libs has different names
/opt/vc/lib/libEGL.so -> /opt/vc/lib/libbrcmEGL.so
/opt/vc/lib/libGLESv2.so -> /opt/vc/lib/libbrcmGLESv2.so
so, I eddited this file in Qt sources:
./qtbase/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf
and changed
-lEGL -lGLESv2
to
-lbrcmEGL -lbrcmGLESv2
the symlinks was broken when mount to host,
$ cd /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/
$ sudo rm libdl.so
$ sudo ln -s ../../../lib/arm-linux-gnueabihf/libdl.so.2 libdl.so
I faced the same issue, tried to follow Miguel Angel Pons solution, but then realized that missed to update my raspberry with:
sudo rpi-update
Solution is taken from https://wiki.qt.io/RaspberryPi2EGLFS#Step_by_step. It is refferencing to https://bugreports.qt.io/browse/QTBUG-62216 and should fix the libraries exactly which compiler complains to.
After that I repeated 8 and 9 steps, cleaned up the source tree, reconfigured and finally successfully built qt for raspberry.

UNIX: ./configure is not generating Makefile

I'm trying to install the Apache web server from source code to a Fedora 14 VM. I've run ./configure multiple times already, and can see Makefile.in and .win but no 'Makefile'. When I run the 'make' command, I get the following error:
make: *** No targets specified and no makefile found. Stop.
Can someone please tell me what's keeping it from generating a Makefile?

make qglviewer gives QT related errors

I want to install libQGLViewer, which I downloaded from http://www.libqglviewer.com/download.html on Ubuntu 10.04. According to the manual I have to do;
1) cd QGLViewer/
2) qmake
3) make
Compiling the library by typing make almost immediately ends in error however;
`c++ -c -pipe -Wall -W -Os -fPIC -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/macx-g++ -I. -I/usr/include/qt3 -I/System/Library/Frameworks/OpenGL.framework/Headers -I/System/Library/Frameworks/AGL.framework/Headers/ -I.moc/ -o .obj/qglviewer.o qglviewer.cpp
In file included from domUtils.h:23,
from qglviewer.cpp:23:
config.h:77:22: error: QGLWidget: No such file or directory
config.h:88:17: error: QList: No such file or directory
config.h:89:19: error: QVector: No such file or directory
In file included from qglviewer.cpp:23:
domUtils.h:25:23: error: QDomElement: No such file or directory
domUtils.h:26:19: error: QString: No such file or directory
domUtils.h:27:23: error: QStringList: No such file or directory
domUtils.h:28:18: error: QColor: No such file or directory
`
this goes on for a while and ends in:
`qglviewer.cpp:841: error: ‘height’ was not declared in this scope
qglviewer.cpp: At global scope:
qglviewer.cpp:864: error: variable or field ‘timerEvent’ declared void
qglviewer.cpp:864: error: ‘QTimerEvent’ was not declared in this scope
qglviewer.cpp:864: error: expected primary-expression before ‘)’ token
make: *** [.obj/qglviewer.o] Error 1
rcar#DUD3642RCAR:~/Downloads/libQGLViewer-2.5.1/QGLViewer$
`
I think this is because it cannot find the QT library. But I have installed QT 5.2 using the latest download from http://qt-project.org/downloads.
Could it be the Makefile just can not locate the library path? And if so I how do I mend this?
Solved it! I missed qtcreator for this; sudo apt-get install qtcreator
I also needed an upgrade to Ubuntu 12.04 because on 10.04 this problem persisted.

Static Qt Build Cryptic Error

I am trying to do a static build of Qt (4.8.1) using mingw32-make (gcc 4.7.0) so that I can statically link my application for the sake of ease of use/delivery.
I keep getting a strange error from mingw32-make, though, which I do not understand.
../3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h:270:103: warning: control reaches end of non-void function [-Wreturn-type]
Makefile.Release:2033: recipe for target 'obj/release/JSBase.o' failed
mingw32-make[2]: *** [obj/release/JSBase.o] Error 1
mingw32-make[2]: Leaving directory 'C:/StaticQt/qt/src/script'
Makefile:34: recipe for target 'release' failed
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory 'C:/StaticQt/qt/src/script'
Makefile:1360: recipe for target 'sub-script-sub_src_target_ordered' failed
mingw32-make: *** [sub-script-sub_src_target_ordered] Error 2
Looking in the associated Makefile.Release file, on the indicated lines, I find these:
Makefile.Release 2033: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/release/JSBase.o ../3rdparty/javascriptcore/JavaScriptCore/API/JSBase.cpp
Makefile.Release 1360: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/release/pcre_compile.o ../3rdparty/javascriptcore/JavaScriptCore/pcre/pcre_compile.cpp
Makefile 34: $(MAKE) -f $(MAKEFILE).Release
I really understand very little about makefiles, so haven't a clue what these lines mean. Any help with this would be very much appreciated.
EDIT: it just occured to me it may be useful for people to know the commandline arguments I used... Well, I followed this guide: http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Windows
There were syntax errors in the code for some reason. Somebody must've updated the Qt Git with the wrong code just before I downloaded it. I got the code from elsewhere and managed to get it to compile using visual studio's nmake instead... turned out it didn't really matter whether I used mingw or vc2008.

Resources