qtwebdriver icon indicating copy to clipboard operation
qtwebdriver copied to clipboard

Error when compiling in parallel: possible missing dependency

Open davidshepherd7 opened this issue 7 years ago • 1 comments

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.

davidshepherd7 avatar Mar 27 '17 15:03 davidshepherd7

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

hekra01 avatar Mar 28 '17 12:03 hekra01