qtwebdriver
qtwebdriver copied to clipboard
Error when compiling in parallel: possible missing dependency
Running make in parallell (e.g. with -j 9
) results in errors when compiling with 'WD_ENABLE_WEB_VIEW': '1'
:
g++: error: ./Default/obj.target/test_WD_hybrid/geni/moc_WindowWithEmbeddedViewTest.o: No such file or directory
g++: error: ./Default/obj.target/test_WD_hybrid/geni/moc_WidgetAndWebViewTest.o: No such file or directory
g++: error: ./Default/obj.target/test_WD_hybrid/geni/moc_GraphicsWebViewTest.o: No such file or directory
test_WD_hybrid.target.mk:177: recipe for target 'Default/WebDriver' failed
make: *** [Default/WebDriver] Error 1
These go away if you set -j 1
. Presumably there's a missing dependency somewhere, I'd try to fix it myself but I don't really understand the build system.
Hi,
Not sure it is a missing deps. Looks more like some issue with qt's moc when used in parallel. Observations when following these steps:
- modify build.sh to do
make -j 12
, then
$ rm -rf ./out && ./build.sh
ar: Default/obj.target/WebDriver_extension_qt_base/geni/moc_q_view_runner.o: No such file or directory
ar: Default/obj.target/WebDriver_extension_qt_quick/geni/moc_qml_objname_util.o: No such file or directory
- Rebuild, without changing anything
$ make -j 12 -C out/desktop/release/
LINK(target) Default/WebDriver
LINK(target) Default/WebDriver_noWebkit: Finished
g++: error: ./Default/obj.target/test_WD_hybrid/geni/moc_WindowWithEmbeddedViewTest.o: No such file or directory
- Again rebuild, without changing anything, this time it works
$ make -j 12 -C out/desktop/release/
LINK(target) Default/WebDriver: Finished
TOUCH Default/obj.target/All.stamp
make: Leaving directory `/home/hekra01/qtwebdriver/out/desktop/release'
Will check if this is a known gyp or moc issue. In the meantime the following workaround can be used for build speed
iff --git a/build.sh b/build.sh
index f246ce7..4a2281e 100755
--- a/build.sh
+++ b/build.sh
@@ -49,7 +49,8 @@ do
[ $? -ne 0 ] && exit 1
cd $OUTPUT_DIR
[ $? -ne 0 ] && echo "**** ERROR: Can't access to $OUTPUT_DIR" && exit 1
- make
+ make -j 12
+ [ $? -ne 0 ] && make
[ $? -ne 0 ] && exit 1
mkdir -p ${DIST_DIR}/{bin,lib