quazip: windows ming32w-make error - qt

I am trying to compile the quazip source, under wdinwso 7 with QT5.4.
I tried compiling unders VS 2013, but the rc.exe file is not found. I made sure that the rc.exe and dll were in the kits and SDK folders for both vs2013 and vs2010.
So I followed this: http://www.maefloresta.com/portal/quazip
When i do so, I get the following error message, and am not sure where to start looking.
C:\development\QTCommon\quazip>mingw32-make
cd quazip\ && ( if not exist Makefile C:\development\QT\5.4\5.4\msvc2013_64\bin\
qmake.exe C:\development\QTCommon\quazip\quazip\quazip.pro -o Makefile ) && ming
w32-make -f Makefile
mingw32-make[1]: Entering directory 'C:/development/QTCommon/quazip/quazip'
mingw32-make -f Makefile.Release
mingw32-make[2]: Entering directory 'C:/development/QTCommon/quazip/quazip'
cl -c -nologo -Zm200 -Zc:wchar_t -FS -O2 -MD -Zc:strictStrings -W3 -w34100 -w341
89 -GR -EHsc -DUNICODE -DWIN32 -DQUAZIP_BUILD -DNOMINMAX -DQT_NO_DEBUG -DQT_CORE
_LIB -DNDEBUG -I"." -I"C:\development\QT\5.4\5.4\msvc2013_64\Src\qtbase\src\3rdp
arty\zlib" -I"C:\development\QT\5.4\5.4\msvc2013_64\include" -I"C:\development\Q
T\5.4\5.4\msvc2013_64\include\QtCore" -I"release" -I"C:\development\QT\5.4\5.4\m
svc2013_64\mkspecs\win32-msvc2013" -Forelease\ #<<
<< was unexpected at this time.
Makefile.Release:116: recipe for target '{release}.cpp{release\}.obj' failed
mingw32-make[2]: *** [{release}.cpp{release\}.obj] Error 255
mingw32-make[2]: Leaving directory 'C:/development/QTCommon/quazip/quazip'
Makefile:34: recipe for target 'release' failed
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory 'C:/development/QTCommon/quazip/quazip'
Makefile:41: recipe for target 'sub-quazip-make_first' failed
mingw32-make: *** [sub-quazip-make_first] Error 2
The makefile.release line found from quazip:
####### Implicit rules
.SUFFIXES: .c .cpp .cc .cxx
{release}.cpp{release\}.obj::
$(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ #<<
$<
<<
Any help would be great, for either the make or the vs 2013 issues.
Cheers.

If you are following the instructions from the link provided (http://www.maefloresta.com/portal/quazip) probably the origin of the problem could come because you are not build properly the QuaZIP libraries or because your include path or library path are wrong.
If you want a full example that works perfectly about how to use QuaZIP in Qt, I recommend you to check this entry of my blog: http://www.antonioborondo.com/2014/10/22/zipping-and-unzipping-files-with-qt/

Related

Qt5.7 qmake; what does "The system cannot find the path specified." mean and how to fix it?

Qt5.7/mingw/windows8.1 qmake. New installation. when i run qmake on a project file, i get the above error message, although the makefiles are emitted, they build and the project works (it would seem).
running qmake from the command line; here are the paths i added to PATH:
I:\Qtmg\Qt5.7.0\5.7\mingw53_32\bin;i:\Qtmg\Qt5.7.0\Tools\mingw530_32\bin;I:\Qtmg\Qt5.7.0\Tools\QtCreator\bin
Is this something to do with config files or caches? If so, where would these be. Also is there any other external state that qmake requires.
thanks.
EDIT#1
here is the project file:
TEMPLATE = app
QT += qml quick quickcontrols2
CONFIG += console
SOURCES += main.cpp
RESOURCES += qml.qrc
Edit #2: output from QtCreator 4.0.2
general messages tab:
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
Compile output tab, run qmake:
14:49:57: Running steps for project Q1...
14:49:57: Starting: "I:\Qtmg\Qt5.7.0\5.7\mingw53_32\bin\qmake.exe" I:\larry\qt\q9edit\Q1.pro -r -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
14:49:57: The process "I:\Qtmg\Qt5.7.0\5.7\mingw53_32\bin\qmake.exe" exited normally.
14:49:57: Elapsed time: 00:00.
Compile output, rebuild:
14:51:32: Running steps for project Q1...
14:51:32: Starting: "I:\Qtmg\Qt5.7.0\Tools\mingw530_32\bin\mingw32-make.exe" clean
I:/Qtmg/Qt5.7.0/Tools/mingw530_32/bin/mingw32-make -f Makefile.Debug clean
mingw32-make[1]: Entering directory 'I:/larry/qt/q9edit'
rm -f debug/qrc_qml.cpp
rm -f debug/main.o debug/qrc_qml.o
mingw32-make[1]: Leaving directory 'I:/larry/qt/q9edit'
I:/Qtmg/Qt5.7.0/Tools/mingw530_32/bin/mingw32-make -f Makefile.Release clean
mingw32-make[1]: Entering directory 'I:/larry/qt/q9edit'
rm -f release/qrc_qml.cpp
rm -f release/main.o release/qrc_qml.o
mingw32-make[1]: Leaving directory 'I:/larry/qt/q9edit'
14:51:33: The process "I:\Qtmg\Qt5.7.0\Tools\mingw530_32\bin\mingw32-make.exe" exited normally.
14:51:33: Configuration unchanged, skipping qmake step.
14:51:33: Starting: "I:\Qtmg\Qt5.7.0\Tools\mingw530_32\bin\mingw32-make.exe"
I:/Qtmg/Qt5.7.0/Tools/mingw530_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'I:/larry/qt/q9edit'
g++ -c -pipe -fno-keep-inline-dllexport -g -std=gnu++11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtQuickControls2 -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtQuick -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtGui -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtANGLE -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtQml -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtNetwork -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtCore -Idebug -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/mkspecs/win32-g++ -o debug/main.o main.cpp
'I:\Qtmg\Qt5.7.0\5.7\mingw53_32\bin\rcc.exe' -name qml qml.qrc -o debug/qrc_qml.cpp
g++ -c -pipe -fno-keep-inline-dllexport -g -std=gnu++11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtQuickControls2 -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtQuick -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtGui -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtANGLE -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtQml -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtNetwork -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/include/QtCore -Idebug -I../../../Qtmg/Qt5.7.0/5.7/mingw53_32/mkspecs/win32-g++ -o debug/qrc_qml.o debug/qrc_qml.cpp
g++ -Wl,-subsystem,console -mthreads -o debug/Q1.exe debug/main.o debug/qrc_qml.o -LI:/Qtmg/Qt5.7.0/5.7/mingw53_32/lib I:/Qtmg/Qt5.7.0/5.7/mingw53_32/lib/libQt5QuickControls2d.a I:/Qtmg/Qt5.7.0/5.7/mingw53_32/lib/libQt5Quickd.a I:/Qtmg/Qt5.7.0/5.7/mingw53_32/lib/libQt5Guid.a I:/Qtmg/Qt5.7.0/5.7/mingw53_32/lib/libQt5Qmld.a I:/Qtmg/Qt5.7.0/5.7/mingw53_32/lib/libQt5Networkd.a I:/Qtmg/Qt5.7.0/5.7/mingw53_32/lib/libQt5Cored.a
mingw32-make[1]: Leaving directory 'I:/larry/qt/q9edit'
14:51:34: The process "I:\Qtmg\Qt5.7.0\Tools\mingw530_32\bin\mingw32-make.exe" exited normally.
14:51:34: Elapsed time: 00:02.
Try editing your changes to the PATH variable, to remove one directory at a time. Looks to me like you are trying to add an unnecessary path (unnecessary since the build succeeds) that is not present on your system.

Qt WebEngine 5.6 Recipe do_install

I found these lines in the Qt WebEngine 5.5 and 5.6 recipe
To make Qt Web Engine compile for 5.6, I needed to delete these lines. Since I have no idea why qtwebengine-qmlplugins, qtwebengine-plugins, and qtwebengine-examples are all gone from the build. So when these lines try to remove the files from the plugin directories. It returns error.
Could someone explain what do they mean? especially the sed one. And what happened to the Qtwebengine plugins, qmlplugins and examples in Qt WebEngine 5.6?
do_install_append() {
rmdir ${D}${OE_QMAKE_PATH_PLUGINS}/${BPN} ${D}${OE_QMAKE_PATH_PLUGINS} || true
sed -i 's# -Wl,--start-group.*-Wl,--end-group##g; s#-L${B}[^ ]* # #g' ${D}${libdir}/pkgconfig/Qt5WebEngineCore.pc
}
Edit: This is the error from compiling
ERROR: Function failed: do_install (log file is located at /mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/temp/log.do_install.3412)
ERROR: Logfile of failure stored in: /mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/temp/log.do_install.3412
Log data follows:
| DEBUG: Executing shell function do_install
| NOTE: make -j 32 MAKEFLAGS=-j 32 OE_QMAKE_COMPILER=arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/sysroots/hio-imx6dl-board OE_QMAKE_CC=arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/sysroots/hio-imx6dl-board OE_QMAKE_CXX=arm-poky-linux-gnueabi-g++ -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/sysroots/hio-imx6dl-board OE_QMAKE_CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types OE_QMAKE_CXXFLAGS= -O2 -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden OE_QMAKE_LINK=arm-poky-linux-gnueabi-g++ -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/sysroots/hio-imx6dl-board OE_QMAKE_LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed OE_QMAKE_AR=arm-poky-linux-gnueabi-ar OE_QMAKE_STRIP=echo OE_QMAKE_WAYLAND_SCANNER=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/sysroots/x86_64-linux/usr/bin/wayland-scanner OE_QMAKE_INCDIR_QT=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/sysroots/hio-imx6dl-board//usr/include/qt5 install INSTALL_ROOT=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/image
| make: Nothing to be done for `install'.
| rmdir: failed to remove '/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/image/usr/lib/qt5/plugins/qtwebengine': No such file or directory
| rmdir: failed to remove '/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/image/usr/lib/qt5/plugins': No such file or directory
| sed: can't read /mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/image/usr/lib/pkgconfig/Qt5WebEngineCore.pc: No such file or directory
| WARNING: exit code 2 from a shell command.
| ERROR: Function failed: do_install (log file is located at /mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/temp/log.do_install.3412)
ERROR: Task 1523 (/mountdata/hio-yocto-bsp/qt5jethro/sources/meta-qt5/recipes-qt/qt5/qtwebengine_git.bb, do_install) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5404 tasks of which 5363 didn't need to be rerun and 1 failed.
No currently running tasks (5404 of 5417)
Edit: I found out that there is an extra / .../hio-imx6dl-board//usr/include.... I have removed the / in OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' but still get the same error above.
OE_QMAKE_INCDIR_QT=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/sysroots/hio-imx6dl-board//usr/include/qt5 install INSTALL_ROOT=/mountdata/hio-yocto-bsp/qt5jethro/qt5/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtwebengine/5.5.99+5.6.0-rc+gitAUTOINC+3f02c25de4_779a2388fc-r0/image
This error occurs due to missing dbus, multiple solutions possible:
Add dbus to your image.
Add line to qtwebengine_git.bb: DEPENDS += "dbus"

Writing your Own Makefile

I am trying to write a Makefile but it is showing
Make: Don't know how to make cc. Stop.
what I am doing is this :-
Hello.c
#include<stdio.h>
extern int print();
int main(){
print();
return 0;
}
print.c
#include<stdio.h>
int print(){
printf("hello\n");
return 0;
}
Makefile
all: OUT
OUT: cc Hello.o print.o -o OUT
Hello.o: Hello.c\
cc -c Hello.c
print.o: print.c \
cc -c print.c
clean: rm -f *.o
clobber: rm -f OUT
when I am writing make
$>make
Make: Don't know how to make cc. Stop.
$>make clean
Make: Don't know how to make rm. Stop.
what thing I am missing..
I am newbie with this make and makefile, so please suggest me some good tutorials on this
I changed to this :-
all: OUT
OUT:; #cc Hello.o print.o -o OUT
Hello.o:; #cc -c Hello.c
print.o:; #cc -c print.c
clean:; #rm -f *.o
clobber:; #rm -f OUT
showing error:-
cc: warning 1913:Hello.o' does not exist or cannot be read
cc: warning 1913: print.o' does not exist or cannot be read
ld: I/O error, file "Hello.o": No such file or directory
Fatal error.
*** Error exit code 1
The rules must be on a different line than the targets, indented with a hard tab:
all: OUT
OUT: Hello.o print.o
cc Hello.o print.o -o OUT
Hello.o: Hello.c
cc -c Hello.c
print.o: print.c
cc -c print.c
clean:
rm -f *.o
clobber:
rm -f OUT
But this can be simplified by relying on implicit rules and generalized by using some variables:
all: OUT
OUT: Hello.o print.o
$(CC) $(CFLAGS) $^ -o $#
clean:
rm -f *.o
clobber:
rm -f OUT

GNU makefile detect header changes

I have a directory with dozens of source and header files. Is there a better or cleaner way than the following %.o target for make to detect changes to header files? When the object is compiled, g++ is invoked with both the .cc and .h files which doesn't seem right, it should find the .h file automatically.
%.o: %.cc %.h
g++ -c $^
OBJECTS=headless-driver.o config.o simplefm2.o emulator.o basis-util.o objective.o weighted-objectives.o motifs.o util.o
learnfun : $(OBJECTS) learnfun.o
g++ $^ -o $#
%.o: %.cc %.h
g++ -c $^
You are specifying $^ which expands to all dependencies. If you just want the first dependency on the Gcc command line, use $< instead.

Makefile errors when I change a directory name

I have a Makefile that compiles, but I want to change the name of one of the directories from "release" to "objects". This is the original Makefile -
# This makefile compiles ....
INCLUDE = -I/usr/include/X11 -I/usr/local/include -I/usr/local/include/FL/images -I/usr/include/freetype2
CC=g++
CFLAGS=-w -D LINUX -O3 -fpermissive
OBJDIR=release # HERE IS THE DIRECTORY I WANT TO CHANGE
SRCDIR=src
LDFLAGS= -L/usr/X11R6/lib$(LIBSELECT) -lpthread -lfltk -lXext -lXft -lfontconfig -lXinerama -lpthread -ldl -lm -lX11
SOURCES_RAW= robot_driver_agent.cpp robot_driver_position.cpp robot_driver_priorityqueue.cpp main.cpp robot_driver_tree.cpp robot_driver_stack.cpp robot_driver_grid.cpp robot_driver_path.cpp grid_analyzer.cpp tcpserver.cpp tcpclient.cpp servercontrol.cpp clientcontrol.cpp robot.cpp udpserver.cpp udpclient.cpp owncontrol.cpp guiwindow.cpp rs232.cpp
TARGET:= go
TARGETD:= go_d
OBJECTS:=$(SOURCES_RAW:.cpp=.o)
OBJECTS:=$(patsubst %.o, $(OBJDIR)/%.o, $(OBJECTS))
SOURCES:=$(SOURCES_RAW)
SOURCES:=$(patsubst %.cpp, $(SRCDIR)/%.cpp, $(SOURCES))
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) -w -D LINUX $(INCLUDE) $^ -o $# $(LDFLAGS)
release/%.o: src/%.cpp
test -d $(OBJDIR) || mkdir $(OBJDIR)
$(CC) -g -c $< $(CFLAGS) -o $#
debug: $(TARGETD)
$(TARGETD): $(OBJECTS)
$(CC) -w -D LINUX $(INCLUDE) $^ -o $# $(LDFLAGS)
%.o: $(SRCDIR)/%.cpp
$(CC) -c -g $< $(CFLAGS)-o $#
.PHONY : clean
clean:
rm -f $(OBJDIR)/*.o
rm -f $(TARGET) $(TARGETD)
All I do is change the OBJDIR symbol to "objects" so it would just be -
OBJDIR=objects
But when I do that, I get the error -
make: *** No rule to make target `objects/robot_driver_agent.o', needed by `go'.
What am I missing? Is "objects" a word reserved for something in make so I can't use it for directories? Is it something in the make file that I need to change? Honestly, I don't know that much about makefiles so any help at all would be great. Thanks.
You have a rule:
release/%.o: src/%.cpp
...
So that when OBJDIR=release and Make wants to build release/robot_driver_agent.o, it knows just what to do. Then you try OBJDIR=objects, it wants to build objects/robot_driver_agent.o, and it doesn't know how because there's no rule that fits. Try changing the rule to:
$(OBJDIR)/%.o: src/%.cpp
...

Resources