Qt - Compilation Error: Couldn't change working directory - c++

I am trying to compile oxideqt, a QML API for Chromium Embedded Framework (CEF), but I am experiencing an error:
11:13:58: Running steps for project oxideqt...
11:13:58: Configuration unchanged, skipping qmake step.
11:13:58: Starting: "C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe"
cd qt\lib\ && ( if not exist Makefile C:\Qt\Qt5.1.1\5.1.1\msvc2010\bin\qmake.exe C:\Users\simon\Documents\oxide\qt\lib\lib.pro -spec win32-msvc2010 -o Makefile ) && C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe -f Makefile
C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe -f Makefile.Release
cd C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0
Couldn't change working directory to C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0.
jom: C:\Users\simon\Documents\build-oxideqt-Desktop_Qt_5_1_1_MSVC2010_32bit-Release\qt\lib\Makefile.Release [C:\Users\simon\Documents\oxide\Makefile.oxide] Error 1
jom: C:\Users\simon\Documents\build-oxideqt-Desktop_Qt_5_1_1_MSVC2010_32bit-Release\qt\lib\Makefile [release] Error 2
jom: C:\Users\simon\Documents\build-oxideqt-Desktop_Qt_5_1_1_MSVC2010_32bit-Release\Makefile [sub-qt-lib-lib-pro-make_first-ordered] Error 2
11:13:58: The process "C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project oxideqt (kit: Desktop Qt 5.1.1 MSVC2010 32bit)
When executing step 'Make'
It looks like that it is doing a cd on C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0, but I cannot find out which script is doing the cd.
The following are the associated .pro files:
oxideqt.pro (top level .pro)
TEMPLATE = subdirs
CONFIG += ordered
lib.file = qt/lib/lib.pro
SUBDIRS += lib
renderer.file = qt/renderer/renderer.pro
SUBDIRS += renderer
sandbox.file = qt/sandbox/sandbox.pro
SUBDIRS += sandbox
qmlplugin.file = qt/qmlplugin/qmlplugin.pro
SUBDIRS += qmlplugin
testutils.file = qt/tests/utils/testutils.pro
SUBDIRS += testutils
qmltests.file = qt/tests/qmltests/qmltests.pro
SUBDIRS += qmltests
QMAKE_CLEAN += -r \
$${OXIDE_SRC_ROOT}/Makefile.oxide \
`find $$OXIDE_SRC_ROOT -name \"*.target.oxide.mk\"` \
$$CHROMIUM_OUT_DIR
lib.pro
CONFIG += gyp disable_check
TARGET = oxide-qt
GYP_TYPE = lib
include($${OXIDE_QMAKE_PATH}/oxide_variables.pri)
GYP_LIBVERSION = $$OXIDE_QT_LIBVERSION
resources.path = $$LIBEXECDIR
resources.files = \
$${CHROMIUM_OUT_PLAT_DIR}/oxide.pak \
$${CHROMIUM_OUT_PLAT_DIR}/oxide_100_percent.pak
resources.CONFIG = no_check_exist
INSTALLS += resources

A possible reason and solution:
This looks like it is for sh, not for cmd.exe:
cd C:/Users/simon/Documents/oxide; ./build/gyp_oxide -IC:/Users/simon/Documents/oxide/qt/qt.gypi -Doxide_qt_libversion=0
If so, it may be due to faulty auto-detection of shell. A reason for that happening might be that there is sh.exe in the PATH. So, find out where it is, and either remove the folder from PATH or rename the file to sh_.exe or whatever.
To find it, this should find the file (a link) at the correct cmd.exe prompt for the build environment:
where sh
Note that if you have a lot of stuff installed, you may have several of them in your PATH, so after getting rid of first, check again... If still not solved, try removing bash from PATH too (though I have not seen that causing trouble). Also remember to restart the IDE or the command prompt if you edit system PATH, for the change to take effect. And then remember to re-run qmake.

It seems that http://bazaar.launchpad.net/~oxide-developers/oxide/oxide.trunk/view/head:/build/gyp_oxide is a python-script, which the make tries to start. Is python.exe in your PATH-variable?
Kim Kulling

I just looked over the configuration of the whole pro-files and found a lot of unix-specific paths like /usr/local. Is window as a build target at all supported?
As mentioned before the build script cannot work with cd ; command .
Maybe you can try to run it using cygwin?
Kim Kulling

Related

Building VirtualBox without GUI or Guest Additions

I'm trying to build VirtualBox 5.2.18 on Ubuntu Server LTS 18.04 64-bit. I want to build it without any GUI components and without Guest Additions, as I want to avoid installing any unnecessary dependencies. I am using the following options when configuring:
./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs
Although there is an option to only build the Guest Additions (--only-additions), there doesn't seem to be an option passable to configure to skip building Guest Additions. Is there a way to skip building Guest Additions, or perhaps to ignore any build-time errors related to building Guest Additions?
I found a solution in https://forums.virtualbox.org/viewtopic.php?t=33090&start=0, which contains more useful details. One can build VirtualBox without GUI or Guest Additions by adding the following lines to LocalConfig.kmk in the root of the development tree:
VBOX_WITHOUT_ADDITIONS = 1
VBOX_WITH_HEADLESS = 1
VBOX_WITH_VRDP=
VBOX_WITH_VRDP_VIDEO_CHANNEL=
VBOX_WITH_VRDP_AUTHMOD=
VBOX_WITH_VRDP_RDESKTOP=
VBOX_WITH_VBOXFB=
VBOX_WITH_KCHMVIEWER=
VBOX_WITH_TESTSUITE=
VBOX_WITH_TESTCASES=
VBOX_WITH_SHARED_FOLDERS=
VBOX_WITH_SHARED_CLIPBOARD=
VBOX_WITH_VNC =
VBOX_X11_SEAMLESS_GUEST=
VirtualBox can then be built by executing the following in the root folder:
./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs
source env.sh
kmk
It is unclear which of the options is necessary for skipping the building of the guest additions (in either LocalConfig.kmk or those passed to ./configure).
When kmk packing is executed, the following error message might appear:
kmk: *** No rule to make target `.../out/linux.amd64/release/bin/additions/VBoxGuestAdditions.iso',
needed by `.../out/linux.amd64/release/obj/Installer/linux/archive/additions/VBoxGuestAdditions.iso'.
Stop.
This error can be avoided by executing a touch command before kmk packing (this fix was obtained from https://forums.virtualbox.org/viewtopic.php?f=10&t=41598&p=187420&hilit=VBoxGuestAdditions#p187420):
kmk
mkdir -p out/linux.amd64/release/bin/additions/
touch out/linux.amd64/release/bin/additions/VBoxGuestAdditions.iso
kmk packing
The mkdir command was added before touch because touch might fail if the directory out/linux.amd64/release/bin/additions/ did not exist.
Some errors might come up during installation of VirtualBox-*.run, but it should successfully completely. However, if you try to execute VBoxManage, you might get the following error:
Could not find VirtualBox installation. Please reinstall.
This arises most probably because the executable file VirtualBox was not found in the installation folder (usually /opt/VirtualBox). The file VirtualBox is the GUI component which was not built. We can bypass the error by editing VBox.sh in the installation folder, and changing the line
elif test -f "${MY_DIR}/VirtualBox" && test -x "${MY_DIR}/VirtualBox"; then
to
elif test -f "${MY_DIR}/VBoxHeadless" && test -x "${MY_DIR}/VBoxHeadless"; then
VirtualBox should now run without any problems.

*** internal error: unable to open jobserver semaphore '3,4': (Error 2: The system cannot find the file specified. ). Stop

I am trying to compile an existing qt application's code using mingw compiler.
During compilation I am getting an error "*** internal error: unable to open jobserver semaphore '3,4': (Error 2: The system cannot find the file specified. ). Stop".
My current project is a makefile based project. Here I have one make file (parent.mk) that compiles all primary modules and then
parent.mk
compilation steps
.
.
.
make $QT_CODE_DIR
Here in this QT code directory I have another makefile (child.mk) which has following content:
child.mk
cd "qtcode_compilation_out_dir"
qmake.exe "product.pro" -r -spec win32-g++
CONFIG+=release
mingw32-make -w
If I try to run the make command manually for QT code then it works fine.
#Alexander: Thanks for the suggestion.
Please suggest if anyone has any idea about it.
Thanks.
Finally, I found out the exact reason of the problem and solution as well.
Reason for failure:
The compilation command that I am using is "make" which is been aliased to "make -j2"and along with "mingw32-make -w" it was producing the error because mingw32-make is an obsolete make command and it doesn't support multi threaded compilation.
Solution:
I just replaced the mingw32-make with make.

Qt Creator project using CMake : Issues removing files

So here's a quick (and probably inane) question from someone new to CMake and Qt.
I'm currently using Qt Creator, alongside of CMake, to create some project. I have 2 C++ files that I have to remove that are no longer used anywhere within the codebase. I have removed them from the project, the CMakeLists.txt file, nuked the build and qt_build directories, and proceeded to try to rebuild. However, I seem to be getting an warning when running qmake which looks like this...
15:03:03: Running steps for project Traveler...
15:03:03: Starting: "C:\Qt\5.9.2\msvc2017_64\bin\qmake.exe" C:\Users\someone\Traveler\Traveler.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"**
Info: creating stash file C:\...\build-traveler-Desktop_Qt_5_9_2_MSVC2017_64bit-Debug\.qmake.stash
WARNING: Failure to find: src\XX_Exceptions.cpp
WARNING: Failure to find: include\XX_Exceptions.hpp
WARNING: Failure to find: src\XX_Exceptions.cpp
WARNING: Failure to find: include\XX_Exceptions.hpp
15:03:07: The process "C:\Qt\5.9.2\msvc2017_64\bin\qmake.exe" exited normally.
15:03:07: Starting: "C:\Qt\Tools\QtCreator\bin\jom.exe" qmake_all
It seems as if qmake exits without error, but I really don't like seeing these compiler warnings (especially duplicated, so its showing up in two places).
Then, when I proceed to try to build...
15:16:27: Running steps for project Traveler...
15:16:27: Configuration unchanged, skipping qmake step.
15:16:27: Starting: "C:\Qt\Tools\QtCreator\bin\jom.exe"
C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
Error: dependent 'src\XX_Exceptions.cpp' does not exist.
jom: C:\Users\someone\build-Traveler-Desktop_Qt_5_9_2_MSVC2017_64bit-Debug\Makefile [debug] Error 2
15:16:28: The process "C:\Qt\Tools\QtCreator\bin\jom.exe" exited with code 2.
Error while building/deploying project Traveler (kit: Desktop Qt 5.9.2 MSVC2017 64bit)
The kit Desktop Qt 5.9.2 MSVC2017 64bit has configuration issues which might be the root cause for this problem.
When executing step "Make"
Question :: Is there any location where the specific files in the project are referenced besides the CMakeLists after I nuke the build directories?

Qt static compile cannot read path

i use Qt5.6.0 msvc , and vs 2013, and install python-2.7.12 also, when I compile Qt to build static, i get this error,
Note: driver E not the main drive
Cannot read E:/Qt/qt-everywhere-opensource-src-5.6.0/qtbase/mkspecs /win32-msvc20
13 /qmake.conf: The system cannot find the path specified.
Could not read qmake configuration file E:/Qt/qt-everywhere-opensource-src-5.6.0
/qtbase/mkspecs/win32-msvc2013 /qmake.conf.
Error processing project file: E:\Qt\qt-everywhere-opensource-src-5.6.0\qt.pro
Qmake failed, return code 3
this is the what i used in Developer Command Prompt for VS2013
- set QMAKESPEC=win32-msvc2013
- set QTDIR=E:\Qt\QT-EVE~1.0\qtbase
- set PATH=E:\Qt\QT-EVE~1.0\qtbase\bin;%PATH%
- set PYTHONPATH=%E:\Python27%;E:\Python27\Lib
- cd E:\Qt\qt-everywhere-opensource-src-5.6.0
- configure -static -platform win32-msvc2013 -nomake examples -nomake tests -mp
ok problem solved, Just add in Environment Variables shorted path for Qt
E:\Qt\QT-EVE~1.0\qtbase\bin;%PATH%;E:\Python27;E:\Python27\Lib

Slow building of a Symbian Qt Project in Qt Creator. Takes over 20 minutes

I'm trying to build a moderately sized Symbian Qt project (around 100 files) using the latest released Nokia Qt SDK (Qt 4.6.3 and Qt Mobility 1.0.2).
The build for the simulator finishes in under 3 minutes, but when I build for the device, the build takes well over 20 minutes! I can forget trying to debug on the device. It is very frustrating!
My machine specs are the following:
Windows 7 32-bit
3.24GB RAM
Intel Core 2 Duo 1.86GHz
The compiler has been stuck here for over 10 minutes:
Running build steps for project AppName...
Starting: "c:/nokiaqtsdk/symbian/sdk/bin/qmake.exe" C:/QtProjects/AppName/AppName.pro -r -spec symbian-abld -after OBJECTS_DIR=obj MOC_DIR=moc UI_DIR=ui RCC_DIR=rcc CONFIG+=release
The process "c:/nokiaqtsdk/symbian/sdk/bin/qmake.exe" exited normally.
Starting: "C:/NokiaQtSDK/Symbian/SDK/epoc32/tools/make.exe" release-gcce -w
C:\NokiaQtSDK\Symbian\SDK\epoc32\tools\make.exe: Entering directory `C:/QtProjects/AppName'
bldmake bldfiles
ABLD.BAT build gcce urel
make -r -f "\NokiaQtSDK\Symbian\SDK\EPOC32\BUILD\QtProjects\AppName\EXPORT.make" EXPORT VERBOSE=-s
make[1]: Entering directory `C:/QtProjects/AppName'
Nothing to do
make[1]: Leaving directory `C:/QtProjects/AppName'
make -r -f "\NokiaQtSDK\Symbian\SDK\EPOC32\BUILD\QtProjects\AppName\GCCE.make" MAKEFILE VERBOSE=-s
make[1]: Entering directory `C:/QtProjects/AppName'
make -s -C \QtProjects\AppName-f "MAKEFILE_0Xe001827C.MK" TO_ROOT=..\.. EPOCBLD=\NokiaQtSDK\Symbian\SDK\EPOC32\BUILD\MAKEFILE_0Xe001827C\GCCE TO_BLDINF=..\..\QtProjects\AppNamePLATFORM=GCCE MAKMAKE
perl -S makmake.pl -D \QtProjects\AppName\APPNAME_0Xe001827C GCCE
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(65) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\osextensions\stdapis\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(66) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\osextensions\stdapis\sys\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(69) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\oem\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(72) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\osextensions\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(73) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\domain\osextensions\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(74) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\domain\osextensions\loc\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(76) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\domain\osextensions\loc\sc\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(77) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\domain\middleware\loc\sc\" not found
WARNING: \QtProjects\AppName\APPNAME_0Xe001827C .MMP(82) : SYSTEMINCLUDE path "\NokiaQtSDK\Symbian\SDK\epoc32\include\osextensions\stdapis\stlport\" not found
MMPFILE "\QtProjects\AppName\APPNAME_0Xe001827C .MMP"
I solved the slow compilation problem as indicated by this thread
http://discussion.forum.nokia.com/forum/showthread.php?196650-Selective-compiling&p=720040&viewfull=1#post720040
I added
SYMBIANBUILD_DEPENDENCYOFF = 1
to the project environment variables (or it could be added to Windows environment variables), and the project compilation was back to speed again.
The solution to set the environment variable 'SYMBIANBUILD_DEPENDENCYOFF = 1' as mentioned above also works for us and can result in much quicker Target (GCCE) build times.
However, be aware that you may often need to perform a full (cleaned) re-build of the source if you have modified header files, and specifically added/removed functions for classes and therefore amended the class interface. This is because using this environment variable prevents the Symbian build tools from scanning your include files for changes.
Manually deleting the relevant *.o object files from your QTSDK\Symbian\SDK\epoc32\BUILD_yourfolder_ is a way to prevent the need for a full rebuild but also ensure that affected code is rebuilt.
I believe the slow speed of the Symbian GCCE builds is due to the legacy ABLD build tools, which should be replaced by the Symbian Build System (SBS v2) soon.
I've had trouble with very slow builds due to ZoneAlarm - switching it off resulting in builds 10x quicker... Worth a try if you have an OS firewall installed.
So cool page, the slow building speed in qt creator make me very very very frustrating, I nearly give up the Qt 4.6.3 and 4.7.3, after add the system variable 'SYMBIANBUILD_DEPENDENCYOFF = 1', it is really amazing, speed back, So thanks!
By the way, there is no speed problem in qt 4.7.4 and the compiler use the sbs not the perl any more.