Solved Error: Compiling legacy Souce code
-
Yes you are wrong.
As already explained, Qt Creator is an IDE. What you see in the about box just tells you the version of Qt used to build Q Creator and that you would have to use if you were to build a plugin to be used by that version of Qt Creator.
It doesn’t matter for the various versions of Qt you want to use to build your applications/libraries.
-
@SGaist
Thank you SGaist for clearing this up of my mind , that's one confusion out of the way! -
For example if i use the following in my file
#include <QMessageBox>
#include <QColor>
#include <QColorDialog>
#include <QUrl>
#include <QDesktopServices>Does the Qt contain these header file or where they live because they are not user defined header?
-
@robrob said in Error: Compiling legacy Souce code:
Does the Qt contain these header file or where they live because they are not user defined header?
Yeah, they are part of Qt, and also the corresponding shared libraries.
You can easily find them by looking into your Qt installation directory.
-
Thanks guys for the help.
I think now I understand the principle of Qt and Qt Creator.
So the build process doesn't generate error related to legacy include files.
However there is error which I don't have a clue what is about.
Below is the output of the compiler:Running build steps for project SA430Gui...
Configuration unchanged, skipping qmake step.
Starting: "C:\Qt\qtcreator-2.2.0\mingw\bin\mingw32-make.exe"
c:\qt\4.7.4\bin\qmake.exe -spec c:\Qt\4.7.4\mkspecs\win32-g++ -o Makefile ..\Src\SA430Gui.pro
Qt: Untested Windows version 6.2 detected!
Qt: Untested Windows version 6.2 detected!
Qt: Untested Windows version 6.2 detected!
Qt: Untested Windows version 6.2 detected!
Qt: Untested Windows version 6.2 detected!
Qt: Untested Windows version 6.2 detected!
Qt: Untested Windows version 6.2 detected!
C:/Qt/qtcreator-2.2.0/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directoryC:/Users/rabmerab/Documents/Qt projects/SA430.Gui1/V2.0/SA430Gui-build-desktop' g++ -mthreads -Wl,-subsystem,windows -o debug\SA430GuiDbg.exe object_script.SA430GuiDbg.Debug -L"c:\Qt\4.7.4\lib" -lmingw32 -lqtmaind debug\Manifest_res.o ../Build/debug/libsa430dbg.a C:/Qt/qwt-6.0.0/lib/libqwtd.a -lQtXmld4 -lQtGuid4 -lQtCored4 mingw32-make[1]: Leaving directory
C:/Users/rabmerab/Documents/Qt projects/SA430.Gui1/V2.0/SA430Gui-build-desktop'
g++: ../Build/debug/libsa430dbg.a: No such file or directory
g++: C:/Qt/qwt-6.0.0/lib/libqwtd.a: No such file or directory
mingw32-make[1]: *** [debug\SA430GuiDbg.exe] Error 1
mingw32-make: *** [debug] Error 2
The process "C:\Qt\qtcreator-2.2.0\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project SA430Gui (target: Desktop)
When executing build step 'Make'END of Compiler output.
The two errors are highlighted in bold font
There is no much information why it failed.The config part (from the SA430GUI.pro) are below:
CONFIG(debug, debug|release){
LIBS += ../Build/debug/libsa430dbg.a
LIBS += C:/Qt/qwt-6.0.0/lib/libqwtd.a
TARGET = SA430GuiDbg
}else{
LIBS += ../Build/release/libsa430.a
LIBS += C:/Qt/qwt-6.0.0/lib/libqwt.a
TARGET = SA430Gui
}Just to remind that this an open source code that was given to me. It is a legacy code (2011).
In desperate help please!
NB: I don't mind sharing the source code with anyone who want to look at it. -
@robrob said in Error: Compiling legacy Souce code:
g++: ../Build/debug/libsa430dbg.a: No such file or directory
g++: C:/Qt/qwt-6.0.0/lib/libqwtd.a: No such file or directoryThis looks ugly :-)
Especially LIBS += C:/Qt/qwt-6.0.0/lib/libqwt.a is really, well, bad.
Do you have these files in this directories? -
Especially LIBS += C:/Qt/qwt-6.0.0/lib/libqwt.a is really, well, bad.
Do you have these files in this directories?I searched for them and I couldn't find any.
Also the folder C:\Qt\qwt-600 doesn't have lib subfolder.
Strange is it? -
qwt is an externally library based on Qt. You need to download and compile yourself separately.
I guess you can use a newer version, but you need to try. -
@koahnig
I downlaoded a qwt install file from https://sourceforge.net/projects/qwt/files/qwt/6.0.0/qwt-6.0.0.zip/download then I run the installation.
Also I downloaded a zip file and both methods generate the same folfer structure without the lib subfolder..
the folder are: doc, Exampes, Include and src. There is no such lib folder.
Do you know if this lib folder exist in qwt? -
You need to compile it, see http://qwt.sourceforge.net/qwtinstall.html
-
-
Hi VRonin and thank you for the reply.
I downloaded Qt-6.0.0 (because the my open souce code used this version). I used Qt Creator 2.2.1 to compiler the qwt.pro and it didn't compile. It is looking for file libqwtd.a C:\qwt-6.0.0\src..*lib*. It is the same file and the same lib folder I was looking for my self. It seem going round in circle :)
Below is the long compiler output and the error is highlighted in bold.
Any idea?Qt Creator Compiler output
Running build steps for project qwt...
Starting: "c:\qt\4.7.4\bin\qmake.exe" "C:\Users\rabmerab\Downloads\qwt-6.0.0 (1)\qwt-6.0.0\qwt.pro" -r -spec win32-g++
Qt: Untested Windows version 6.2 detected!
Reading C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-6.0.0/src/src.pro [C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/src]
Reading C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-6.0.0/textengines/textengines.pro [C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/textengines]
Reading C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-6.0.0/textengines/mathml/mathml.pro [C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/textengines/mathml]
Reading C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-6.0.0/designer/designer.pro [C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/designer]
Qt: Untested Windows version 6.2 detected!
Qt: Untested Windows version 6.2 detected!
Project MESSAGE: The qwtmathml library contains code of the MML Widget from the Qt solutions package.
Project MESSAGE: Beside the Qwt license you also have to take care of its license.
Project MESSAGE: The qwtmathml library contains code of the MML Widget from the Qt solutions package.
Project MESSAGE: Beside the Qwt license you also have to take care of its license.
Project MESSAGE: The qwtmathml library contains code of the MML Widget from the Qt solutions package.
Project MESSAGE: Beside the Qwt license you also have to take care of its license.
The process "c:\qt\4.7.4\bin\qmake.exe" exited normally.Starting: "C:\Qt\qtcreator-2.2.0\mingw\bin\mingw32-make.exe"
cd src\ && C:/Qt/qtcreator-2.2.0/mingw/bin/mingw32-make -f Makefile
mingw32-make[1]: Entering directoryC:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/src' C:/Qt/qtcreator-2.2.0/mingw/bin/mingw32-make -f Makefile.Debug all mingw32-make[2]: Entering directory
C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/src'
compiling ../../qwt-6.0.0/src/qwt_abstract_scale_draw.cpp
compiling ../../qwt-6.0.0/src/qwt_interval_symbol.cpp
compiling ../../qwt-6.0.0/src/qwt_clipper.cpp
compiling ../../qwt-6.0.0/src/qwt_color_map.cpp
compiling ../../qwt-6.0.0/src/qwt_column_symbol.cpp
compiling ../../qwt-6.0.0/src/qwt_interval.cpp
compiling ../../qwt-6.0.0/src/qwt_dyngrid_layout.cpp
compiling ../../qwt-6.0.0/src/qwt_math.cpp
compiling ../../qwt-6.0.0/src/qwt_magnifier.cpp
compiling ../../qwt-6.0.0/src/qwt_panner.cpp
compiling ../../qwt-6.0.0/src/qwt_null_paintdevice.cpp
compiling ../../qwt-6.0.0/src/qwt_painter.cpp
compiling ../../qwt-6.0.0/src/qwt_picker.cpp
compiling ../../qwt-6.0.0/src/qwt_round_scale_draw.cpp
compiling ../../qwt-6.0.0/src/qwt_scale_div.cpp
compiling ../../qwt-6.0.0/src/qwt_scale_draw.cpp
compiling ../../qwt-6.0.0/src/qwt_scale_map.cpp
compiling ../../qwt-6.0.0/src/qwt_spline.cpp
compiling ../../qwt-6.0.0/src/qwt_text_engine.cpp
compiling ../../qwt-6.0.0/src/qwt_text_label.cpp
compiling ../../qwt-6.0.0/src/qwt_text.cpp
compiling ../../qwt-6.0.0/src/qwt_event_pattern.cpp
compiling ../../qwt-6.0.0/src/qwt_picker_machine.cpp
compiling ../../qwt-6.0.0/src/qwt_point_3d.cpp
compiling ../../qwt-6.0.0/src/qwt_point_polar.cpp
compiling ../../qwt-6.0.0/src/qwt_scale_engine.cpp
compiling ../../qwt-6.0.0/src/qwt_symbol.cpp
compiling ../../qwt-6.0.0/src/qwt_system_clock.cpp
compiling ../../qwt-6.0.0/src/qwt_curve_fitter.cpp
compiling ../../qwt-6.0.0/src/qwt_legend.cpp
compiling ../../qwt-6.0.0/src/qwt_legend_item.cpp
compiling ../../qwt-6.0.0/src/qwt_plot.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_renderer.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_xml.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_axis.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_curve.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_dict.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_directpainter.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_grid.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_histogram.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_item.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_intervalcurve.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_spectrogram.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_spectrocurve.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_scaleitem.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_seriesitem.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_marker.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_layout.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_canvas.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_panner.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_rasteritem.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_picker.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_zoomer.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_magnifier.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_rescaler.cpp
compiling ../../qwt-6.0.0/src/qwt_raster_data.cpp
compiling ../../qwt-6.0.0/src/qwt_matrix_raster_data.cpp
compiling ../../qwt-6.0.0/src/qwt_sampling_thread.cpp
compiling ../../qwt-6.0.0/src/qwt_series_data.cpp
compiling ../../qwt-6.0.0/src/qwt_scale_widget.cpp
compiling ../../qwt-6.0.0/src/qwt_plot_svgitem.cpp
compiling ../../qwt-6.0.0/src/qwt_abstract_slider.cpp
compiling ../../qwt-6.0.0/src/qwt_abstract_scale.cpp
compiling ../../qwt-6.0.0/src/qwt_arrow_button.cpp
compiling ../../qwt-6.0.0/src/qwt_analog_clock.cpp
compiling ../../qwt-6.0.0/src/qwt_compass.cpp
compiling ../../qwt-6.0.0/src/qwt_compass_rose.cpp
compiling ../../qwt-6.0.0/src/qwt_counter.cpp
compiling ../../qwt-6.0.0/src/qwt_dial.cpp
compiling ../../qwt-6.0.0/src/qwt_dial_needle.cpp
compiling ../../qwt-6.0.0/src/qwt_double_range.cpp
compiling ../../qwt-6.0.0/src/qwt_knob.cpp
compiling ../../qwt-6.0.0/src/qwt_slider.cpp
compiling ../../qwt-6.0.0/src/qwt_thermo.cpp
compiling ../../qwt-6.0.0/src/qwt_wheel.cpp
moc ....\qwt-6.0.0\src\qwt_dyngrid_layout.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_dyngrid_layout.cpp
moc ....\qwt-6.0.0\src\qwt_magnifier.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_magnifier.cpp
moc ....\qwt-6.0.0\src\qwt_panner.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_panner.cpp
moc ....\qwt-6.0.0\src\qwt_picker.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_picker.cpp
moc ....\qwt-6.0.0\src\qwt_text_label.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_text_label.cpp
moc ....\qwt-6.0.0\src\qwt_legend.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_legend.cpp
moc ....\qwt-6.0.0\src\qwt_legend_item.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_legend_item.cpp
moc ....\qwt-6.0.0\src\qwt_plot.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_plot.cpp
moc ....\qwt-6.0.0\src\qwt_plot_renderer.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_plot_renderer.cpp
moc ....\qwt-6.0.0\src\qwt_plot_canvas.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_plot_canvas.cpp
moc ....\qwt-6.0.0\src\qwt_plot_panner.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_plot_panner.cpp
moc ....\qwt-6.0.0\src\qwt_plot_picker.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_plot_picker.cpp
moc ....\qwt-6.0.0\src\qwt_plot_zoomer.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_plot_zoomer.cpp
moc ....\qwt-6.0.0\src\qwt_plot_magnifier.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_plot_magnifier.cpp
moc ....\qwt-6.0.0\src\qwt_sampling_thread.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_sampling_thread.cpp
moc ....\qwt-6.0.0\src\qwt_scale_widget.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_scale_widget.cpp
moc ....\qwt-6.0.0\src\qwt_abstract_slider.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_abstract_slider.cpp
moc ....\qwt-6.0.0\src\qwt_analog_clock.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_analog_clock.cpp
moc ....\qwt-6.0.0\src\qwt_compass.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_compass.cpp
moc ....\qwt-6.0.0\src\qwt_counter.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_counter.cpp
moc ....\qwt-6.0.0\src\qwt_dial.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_dial.cpp
moc ....\qwt-6.0.0\src\qwt_knob.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_knob.cpp
moc ....\qwt-6.0.0\src\qwt_slider.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_slider.cpp
moc ....\qwt-6.0.0\src\qwt_thermo.h
Qt: Untested Windows version 6.2 detected!
compiling moc/moc_qwt_thermo.cpp
moc ....\qwt-6.0.0\src\qwt_wheel.h
Qt: Untested Windows version 6.2 detected!compiling moc/moc_qwt_wheel.cpp
linking ....\qwt-6.0.0\lib\qwtd.dll
mingw32-make[2]: Leaving directoryC:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/src' mingw32-make[1]: Leaving directory
C:/Users/rabmerab/Downloads/qwt-6.0.0 (1)/qwt-build-desktop/src'g++: (1)\qwt-6.0.0\src..\lib\libqwtd.a: No such file or directory
mingw32-make[2]: *** [....\qwt-6.0.0\lib\qwtd.dll] Error 1
mingw32-make[1]: *** [debug-all] Error 2
mingw32-make: *** [sub-src-make_default-ordered] Error 2
The process "C:\Qt\qtcreator-2.2.0\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project qwt (target: Desktop)
When executing build step 'Make' -
@VRonin
I downloaded the latest qwt 6.1.3 and I followed the instruction that you mentioned.
I used command line (CMD) and at the end it failed:What i did :
cd C:\qwt-6.1.3
qmake qwt.pro -o MakeFile
Info: creating stash file C:\qwt-6.1.3.qmake.stashThen I can see that the file MakeFile was created
then I typed:C:\qwt-6.1.3>Mingw32-make -f MakeFile
then it compile all the files OK until it get to the state below:
generating moc/moc_predefs.h
g++: CreateProcess: No such file or directory
Mingw32-make[2]: *** [moc/moc_predefs.h] Error 1
Mingw32-make[2]: Leaving directoryC:/qwt-6.1.3/src' Mingw32-make[1]: *** [release-all] Error 2 Mingw32-make[1]: Leaving directory
C:/qwt-6.1.3/src'
Mingw32-make: *** [sub-src-make_first-ordered] Error 2I don't know what went wrong. However, a Lib folder was created but was empty.
Any idea? -
I just tried and it's extremely easy.
- download and unpack the source from https://sourceforge.net/projects/qwt/files/qwt/
- open a developer console and
cd
to the folder where you unpacked the source - call
qmake
on the command line - call
make
on the command line (nmake
for MSVCmingw32-make
for mingw) - call
make install
on the command line (nmake install
for MSVCmingw32-make install
for mingw) - The library will be ready for you in
/usr/local/qwt-x.x.x
or, on Windows,C:/Qwt-x.x.x
-
When looking at some of your problems, I am wondering if there is a problem with your installation of Qt creator and Qt libs.
Did you follow the advice far above and did a fresh installation using the online installer?
This should give a fresh and complete setup of Qt creator and Qt libs. There you can check step by step with the examples that components are working.Presumably there are some mix due to installation of different Qt creator versions and possibly also some Qt lib versions. At least that would explain your trouble to compile qwt.
-
I started with fresh and the latest qt online installation and because it didn't work, I went and I tried diffirent version.
As the source code was created in 13/04/2014, I tried different Qt and Qt creator down to version 2.2.1 whch seem resolve the issue of the legacy header file.
This what I got installed in my PC:
Qt version: 4.0.0, 4.7.4 and 5.1
Qt Creator version: 4.5.1, 2.4.1,2.3.0 and 2.2.1.
The source code was created using Qt 4.7.4 and also uses qwt 6.0.0. I don't know about the Qt Creator version but I worked it out ( using the source code date) to be version 2.2.1.
Does having many different vesion causes issues ?
I got Windows 10 64 bit. The Qt Creator is 32 bit. Can this be a problem?I may try to un-install everything and try fresh.
-
@robrob said in Error: Compiling legacy Souce code:
Does having many different vesion causes issues ?
Many Qt lib versions do not create a problem.
I got Windows 10 64 bit. The Qt Creator is 32 bit. Can this be a problem?
No. I have win10 64 bit and standard Qt creator 32 bit V4.5.1 as well. And definitely not the problems you have. And I am using also qwt, but newer versions because of Qt5.
I may try to un-install everything and try fresh.
That is highly recommended. With the online installer you can install only one Qt creator version, which is completely sufficient. Online installer helps you slao to find the right MinGW compiler which you need to install to work with the Qt libs version.
Note, the online installer is installing typically Qt libs under c:/Qt/5.4.2 or similar while the creator is installed under c:/Qt/tools. Best advice is not to mess around with this.
-
Hi Koahnig and thank you for the reply.
That is highly recommended. With the online installer you can install only one Qt creator version, which is completely sufficient. Online installer helps you slao to find the right MinGW compiler which you need to install to work with the Qt libs version
I tried to compile the qwt with Qt Creator 4.5.1 ( with Qt 4.7.4) which I think it is the latest version and it failed. Then I tried with version 2.4.1 ( with Qt 4.7.4) and it worked ( only few warining messages). Now I got the lib folder.
It seem to me that any project has to be opened or compiled by the Qt Creator version which created the project in the first place, thus using the latest Qt Creater version to open an old or legacy source code would fail compilaton. This is what I experienced so far but then I just started using Qt so it is too early for me. Please correct me if I am wrong. -
@robrob said in Error: Compiling legacy Souce code:
It seem to me that any project has to be opened or compiled by the Qt Creator version which created the project in the first place, thus using the latest Qt Creater version to open an old or legacy source code would fail compilaton.
No. You don't even need Creator to build a QMake project. Of course you need to set up suitable compilers, library version, debuggers etc. for the build.
Please correct me if I am wrong.
You are.
-
@robrob said in Error: Compiling legacy Souce code:
I tried to compile the qwt with Qt Creator
You don't compile with QtCreator, QtCreator is an IDE not a compiler. You need to make sure your environment is set up correctly (compiler, Qt).