invalid use of incomplete type ‘class QWebPage’ #193

Open
opened 2018-07-20 02:28:59 +00:00 by SampsonCrowley · 0 comments
SampsonCrowley commented 2018-07-20 02:28:59 +00:00 (Migrated from github.com)

gem install jasmine-headless-webkit -v '0.4.2' --source 'https://rubygems.org/'

ERROR:  Error installing jasmine-headless-webkit:
        ERROR: Failed to build gem native extension.

    current directory: /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner
/home/samps/.rubies/ruby-2.5.1/bin/ruby -r ./siteconf20180719-16310-35vynb.rb extconf.rb
Info: creating stash file /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner/.qmake.stash
g++ -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt/mkspecs/features/data/dummy.cpp
/usr/bin/moc -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include ./moc_predefs.h -Imacx-gcc -I/home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner -I/usr/include/qt -I/usr/include/qt/QtWebKit -I/usr/include/qt/QtGui -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I/usr/include/c++/8.1.0 -I/usr/include/c++/8.1.0/x86_64-pc-linux-gnu -I/usr/include/c++/8.1.0/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include-fixed -I/usr/include specrunner.cpp -o specrunner.moc
g++ -c -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtWebKit -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib/qt/mkspecs/linux-g++ -o specrunner.o specrunner.cpp
specrunner.cpp:35:38: error: invalid use of incomplete type ‘class QWebPage’
 class HeadlessSpecRunnerPage: public QWebPage
                                      ^~~~~~~~
In file included from /usr/include/qt/QtWebKit/QtWebKit:8,
                 from specrunner.cpp:25:
/usr/include/qt/QtWebKit/qwebelement.h:164:18: note: forward declaration of ‘class QWebPage’
     friend class QWebPage;
                  ^~~~~~~~
specrunner.cpp: In member function ‘bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame*, const QString&)’:
specrunner.cpp:52:59: warning: unused parameter ‘frame’ [-Wunused-parameter]
 bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg)
                                                ~~~~~~~~~~~^~~~~
specrunner.cpp:52:81: warning: unused parameter ‘msg’ [-Wunused-parameter]
 bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg)
                                                                  ~~~~~~~~~~~~~~~^~~
specrunner.cpp: In member function ‘void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame*, const QString&)’:
specrunner.cpp:58:57: warning: unused parameter ‘frame’ [-Wunused-parameter]
 void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame *frame, const QString &msg)
                                              ~~~~~~~~~~~^~~~~
specrunner.cpp: In constructor ‘HeadlessSpecRunner::HeadlessSpecRunner()’:
specrunner.cpp:117:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘settings’
     m_page.settings()->enablePersistentStorage();
            ^~~~~~~~
specrunner.cpp:118:73: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [20], HeadlessSpecRunner*, const char [13])’
     connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool)));
                                                                         ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:214:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:217:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt/QtCore/qobject.h:469:32: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt/QtCore/qobject.h:234:43: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:118:73:   required from here
/usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:266:13: note:   template argument deduction/substitution failed:
specrunner.cpp:118:73: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool)));
                                                                         ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:275:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:118:73:   required from here
/usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:306:13: note:   template argument deduction/substitution failed:
specrunner.cpp:118:73: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool)));
                                                                         ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:314:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:118:73:   required from here
/usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
specrunner.cpp:119:108: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [35], HeadlessSpecRunner*, const char [33])’
     connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString)));
                                                                                                            ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:214:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:217:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt/QtCore/qobject.h:469:32: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt/QtCore/qobject.h:234:43: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:119:108:   required from here
/usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:266:13: note:   template argument deduction/substitution failed:
specrunner.cpp:119:108: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString)));
                                                                                                            ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:275:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:119:108:   required from here
/usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:306:13: note:   template argument deduction/substitution failed:
specrunner.cpp:119:108: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString)));
                                                                                                            ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:314:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:119:108:   required from here
/usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
specrunner.cpp:120:102: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [31], HeadlessSpecRunner*, const char [31])’
     connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString)));
                                                                                                      ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:214:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:217:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt/QtCore/qobject.h:469:32: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt/QtCore/qobject.h:234:43: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:120:102:   required from here
/usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:266:13: note:   template argument deduction/substitution failed:
specrunner.cpp:120:102: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString)));
                                                                                                      ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:275:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:120:102:   required from here
/usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:306:13: note:   template argument deduction/substitution failed:
specrunner.cpp:120:102: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString)));
                                                                                                      ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:314:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:120:102:   required from here
/usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
specrunner.cpp:121:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     connect(m_page.mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(addJHW()));
                    ^~~~~~~~~
specrunner.cpp: In member function ‘void HeadlessSpecRunner::go()’:
specrunner.cpp:132:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘setPreferredContentsSize’
     m_page.setPreferredContentsSize(QSize(1024, 600));
            ^~~~~~~~~~~~~~~~~~~~~~~~
specrunner.cpp: In member function ‘void HeadlessSpecRunner::addJHW()’:
specrunner.cpp:138:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     m_page.mainFrame()->addToJavaScriptWindowObject("JHW", this);
            ^~~~~~~~~
specrunner.cpp: In member function ‘void HeadlessSpecRunner::loadSpec()’:
specrunner.cpp:143:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     m_page.mainFrame()->load(runnerFiles.dequeue());
            ^~~~~~~~~
In file included from /usr/include/qt/QtCore/QtCore:4,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
specrunner.cpp: In member function ‘void HeadlessSpecRunner::watch(bool)’:
specrunner.cpp:150:57: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
         std::cerr << "Can't load " << qPrintable(m_page.mainFrame()->url().toString()) << ", the file may be broken." << std::endl;
                                                         ^~~~~~~~~
specrunner.cpp:153:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(1);
                       ^~~~~~~~
specrunner.cpp: In member function ‘bool HeadlessSpecRunner::hasElement(const char*)’:
specrunner.cpp:162:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     return !m_page.mainFrame()->findFirstElement(select).isNull();
                    ^~~~~~~~~
specrunner.cpp: In member function ‘virtual void HeadlessSpecRunner::timerEvent(QTimerEvent*)’:
specrunner.cpp:310:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(1);
                       ^~~~~~~~
specrunner.cpp:323:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(exitCode);
                       ^~~~~~~~
specrunner.cpp:332:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(1);
                       ^~~~~~~~
In file included from specrunner.cpp:336:
specrunner.moc: In static member function ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’:
specrunner.moc:76:78: error: invalid static_cast from type ‘QObject*’ to type ‘HeadlessSpecRunnerPage*’
         HeadlessSpecRunnerPage *_t = static_cast<HeadlessSpecRunnerPage *>(_o);
                                                                              ^
In file included from specrunner.cpp:336:
specrunner.moc: At global scope:
specrunner.moc:103:18: error: incomplete type ‘QWebPage’ used in nested name specifier
     { &QWebPage::staticMetaObject, qt_meta_stringdata_HeadlessSpecRunnerPage.data,
                  ^~~~~~~~~~~~~~~~
specrunner.moc: In member function ‘virtual const QMetaObject* HeadlessSpecRunnerPage::metaObject() const’:
specrunner.moc:110:21: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                     ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc:110:21: error: invalid use of non-static data member ‘QObject::d_ptr’
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                     ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc:110:50: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                                                  ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc:110:50: error: invalid use of non-static data member ‘QObject::d_ptr’
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                                                  ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc: In member function ‘virtual void* HeadlessSpecRunnerPage::qt_metacast(const char*)’:
specrunner.moc:118:22: error: incomplete type ‘QWebPage’ used in nested name specifier
     return QWebPage::qt_metacast(_clname);
                      ^~~~~~~~~~~
specrunner.moc: In member function ‘virtual int HeadlessSpecRunnerPage::qt_metacall(QMetaObject::Call, int, void**)’:
specrunner.moc:123:21: error: incomplete type ‘QWebPage’ used in nested name specifier
     _id = QWebPage::qt_metacall(_c, _id, _a);
                     ^~~~~~~~~~~
specrunner.moc:128:49: error: no matching function for call to ‘HeadlessSpecRunnerPage::qt_static_metacall(HeadlessSpecRunnerPage*, QMetaObject::Call&, int&, void**&)’
             qt_static_metacall(this, _c, _id, _a);
                                                 ^
In file included from specrunner.cpp:336:
specrunner.moc:73:6: note: candidate: ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’
 void HeadlessSpecRunnerPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
      ^~~~~~~~~~~~~~~~~~~~~~
specrunner.moc:73:6: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
In file included from specrunner.cpp:336:
specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::consoleLog(const QString&, int, const QString&)’:
specrunner.moc:142:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [4])’
     QMetaObject::activate(this, &staticMetaObject, 0, _a);
                                                         ^
In file included from /usr/include/qt/QtCore/qobject.h:46,
                 from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’
     static void activate(QObject *sender, int signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note:   candidate expects 3 arguments, 4 provided
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’
     static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’
     static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
In file included from specrunner.cpp:336:
specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::internalLog(const QString&, const QString&)’:
specrunner.moc:149:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [3])’
     QMetaObject::activate(this, &staticMetaObject, 1, _a);
                                                         ^
In file included from /usr/include/qt/QtCore/qobject.h:46,
                 from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’
     static void activate(QObject *sender, int signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note:   candidate expects 3 arguments, 4 provided
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’
     static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’
     static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
specrunner.cpp: In function ‘int main(int, char**)’:
specrunner.cpp:345:17: error: ‘getopt’ was not declared in this scope
     while ((c = getopt(argc, argv, "cr:")) != -1) {
                 ^~~~~~
specrunner.cpp:345:17: note: suggested alternative: ‘getpt’
     while ((c = getopt(argc, argv, "cr:")) != -1) {
                 ^~~~~~
                 getpt
specrunner.cpp:351:22: error: ‘optarg’ was not declared in this scope
           reporter = optarg;
                      ^~~~~~
specrunner.cpp:351:22: note: suggested alternative: ‘va_arg’
           reporter = optarg;
                      ^~~~~~
                      va_arg
specrunner.cpp:356:9: error: ‘optind’ was not declared in this scope
     if (optind == argc) {
         ^~~~~~
specrunner.cpp:356:9: note: suggested alternative: ‘qFind’
     if (optind == argc) {
         ^~~~~~
         qFind
specrunner.cpp:362:22: error: variable ‘QApplication app’ has initializer but incomplete type
     QApplication app(argc, argv);
                      ^~~~
specrunner.cpp:367:18: error: ‘optind’ was not declared in this scope
     for (index = optind; index < argc; index++) {
                  ^~~~~~
specrunner.cpp:367:18: note: suggested alternative: ‘qFind’
     for (index = optind; index < argc; index++) {
                  ^~~~~~
                  qFind
make: *** [Makefile:449: specrunner.o] Error 1

current directory: /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner
make "DESTDIR=" clean
rm -f moc_predefs.h
rm -f specrunner.moc
rm -f specrunner.o
rm -f *~ core *.core

current directory: /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner
make "DESTDIR="
g++ -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt/mkspecs/features/data/dummy.cpp
/usr/bin/moc -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include ./moc_predefs.h -Imacx-gcc -I/home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner -I/usr/include/qt -I/usr/include/qt/QtWebKit -I/usr/include/qt/QtGui -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I/usr/include/c++/8.1.0 -I/usr/include/c++/8.1.0/x86_64-pc-linux-gnu -I/usr/include/c++/8.1.0/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include-fixed -I/usr/include specrunner.cpp -o specrunner.moc
g++ -c -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtWebKit -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib/qt/mkspecs/linux-g++ -o specrunner.o specrunner.cpp
specrunner.cpp:35:38: error: invalid use of incomplete type ‘class QWebPage’
 class HeadlessSpecRunnerPage: public QWebPage
                                      ^~~~~~~~
In file included from /usr/include/qt/QtWebKit/QtWebKit:8,
                 from specrunner.cpp:25:
/usr/include/qt/QtWebKit/qwebelement.h:164:18: note: forward declaration of ‘class QWebPage’
     friend class QWebPage;
                  ^~~~~~~~
specrunner.cpp: In member function ‘bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame*, const QString&)’:
specrunner.cpp:52:59: warning: unused parameter ‘frame’ [-Wunused-parameter]
 bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg)
                                                ~~~~~~~~~~~^~~~~
specrunner.cpp:52:81: warning: unused parameter ‘msg’ [-Wunused-parameter]
 bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg)
                                                                  ~~~~~~~~~~~~~~~^~~
specrunner.cpp: In member function ‘void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame*, const QString&)’:
specrunner.cpp:58:57: warning: unused parameter ‘frame’ [-Wunused-parameter]
 void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame *frame, const QString &msg)
                                              ~~~~~~~~~~~^~~~~
specrunner.cpp: In constructor ‘HeadlessSpecRunner::HeadlessSpecRunner()’:
specrunner.cpp:117:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘settings’
     m_page.settings()->enablePersistentStorage();
            ^~~~~~~~
specrunner.cpp:118:73: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [20], HeadlessSpecRunner*, const char [13])’
     connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool)));
                                                                         ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:214:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:217:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt/QtCore/qobject.h:469:32: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt/QtCore/qobject.h:234:43: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:118:73:   required from here
/usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:266:13: note:   template argument deduction/substitution failed:
specrunner.cpp:118:73: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool)));
                                                                         ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:275:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:118:73:   required from here
/usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:306:13: note:   template argument deduction/substitution failed:
specrunner.cpp:118:73: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool)));
                                                                         ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:314:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:118:73:   required from here
/usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
specrunner.cpp:119:108: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [35], HeadlessSpecRunner*, const char [33])’
     connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString)));
                                                                                                            ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:214:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:217:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt/QtCore/qobject.h:469:32: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt/QtCore/qobject.h:234:43: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:119:108:   required from here
/usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:266:13: note:   template argument deduction/substitution failed:
specrunner.cpp:119:108: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString)));
                                                                                                            ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:275:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:119:108:   required from here
/usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:306:13: note:   template argument deduction/substitution failed:
specrunner.cpp:119:108: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString)));
                                                                                                            ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:314:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:119:108:   required from here
/usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
specrunner.cpp:120:102: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [31], HeadlessSpecRunner*, const char [31])’
     connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString)));
                                                                                                      ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:214:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’
     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                                    ^~~~~~~
/usr/include/qt/QtCore/qobject.h:217:36: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’
 inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
                                ^~~~~~~
/usr/include/qt/QtCore/qobject.h:469:32: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’
/usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’
     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                           ^~~~~~~
/usr/include/qt/QtCore/qobject.h:234:43: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:120:102:   required from here
/usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
/usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:266:13: note:   template argument deduction/substitution failed:
specrunner.cpp:120:102: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString)));
                                                                                                      ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:275:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:120:102:   required from here
/usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’
/usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:306:13: note:   template argument deduction/substitution failed:
specrunner.cpp:120:102: note:   candidate expects 3 arguments, 4 provided
     connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString)));
                                                                                                      ^
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’
             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
             ^~~~~~~
/usr/include/qt/QtCore/qobject.h:314:13: note:   template argument deduction/substitution failed:
/usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’:
specrunner.cpp:120:102:   required from here
/usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’
specrunner.cpp:121:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     connect(m_page.mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(addJHW()));
                    ^~~~~~~~~
specrunner.cpp: In member function ‘void HeadlessSpecRunner::go()’:
specrunner.cpp:132:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘setPreferredContentsSize’
     m_page.setPreferredContentsSize(QSize(1024, 600));
            ^~~~~~~~~~~~~~~~~~~~~~~~
specrunner.cpp: In member function ‘void HeadlessSpecRunner::addJHW()’:
specrunner.cpp:138:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     m_page.mainFrame()->addToJavaScriptWindowObject("JHW", this);
            ^~~~~~~~~
specrunner.cpp: In member function ‘void HeadlessSpecRunner::loadSpec()’:
specrunner.cpp:143:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     m_page.mainFrame()->load(runnerFiles.dequeue());
            ^~~~~~~~~
In file included from /usr/include/qt/QtCore/QtCore:4,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
specrunner.cpp: In member function ‘void HeadlessSpecRunner::watch(bool)’:
specrunner.cpp:150:57: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
         std::cerr << "Can't load " << qPrintable(m_page.mainFrame()->url().toString()) << ", the file may be broken." << std::endl;
                                                         ^~~~~~~~~
specrunner.cpp:153:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(1);
                       ^~~~~~~~
specrunner.cpp: In member function ‘bool HeadlessSpecRunner::hasElement(const char*)’:
specrunner.cpp:162:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’
     return !m_page.mainFrame()->findFirstElement(select).isNull();
                    ^~~~~~~~~
specrunner.cpp: In member function ‘virtual void HeadlessSpecRunner::timerEvent(QTimerEvent*)’:
specrunner.cpp:310:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(1);
                       ^~~~~~~~
specrunner.cpp:323:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(exitCode);
                       ^~~~~~~~
specrunner.cpp:332:23: error: incomplete type ‘QApplication’ used in nested name specifier
         QApplication::instance()->exit(1);
                       ^~~~~~~~
In file included from specrunner.cpp:336:
specrunner.moc: In static member function ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’:
specrunner.moc:76:78: error: invalid static_cast from type ‘QObject*’ to type ‘HeadlessSpecRunnerPage*’
         HeadlessSpecRunnerPage *_t = static_cast<HeadlessSpecRunnerPage *>(_o);
                                                                              ^
In file included from specrunner.cpp:336:
specrunner.moc: At global scope:
specrunner.moc:103:18: error: incomplete type ‘QWebPage’ used in nested name specifier
     { &QWebPage::staticMetaObject, qt_meta_stringdata_HeadlessSpecRunnerPage.data,
                  ^~~~~~~~~~~~~~~~
specrunner.moc: In member function ‘virtual const QMetaObject* HeadlessSpecRunnerPage::metaObject() const’:
specrunner.moc:110:21: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                     ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc:110:21: error: invalid use of non-static data member ‘QObject::d_ptr’
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                     ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc:110:50: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                                                  ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc:110:50: error: invalid use of non-static data member ‘QObject::d_ptr’
     return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
                                                  ^~~~~
In file included from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobject.h:439:33: note: declared here
     QScopedPointer<QObjectData> d_ptr;
                                 ^~~~~
In file included from specrunner.cpp:336:
specrunner.moc: In member function ‘virtual void* HeadlessSpecRunnerPage::qt_metacast(const char*)’:
specrunner.moc:118:22: error: incomplete type ‘QWebPage’ used in nested name specifier
     return QWebPage::qt_metacast(_clname);
                      ^~~~~~~~~~~
specrunner.moc: In member function ‘virtual int HeadlessSpecRunnerPage::qt_metacall(QMetaObject::Call, int, void**)’:
specrunner.moc:123:21: error: incomplete type ‘QWebPage’ used in nested name specifier
     _id = QWebPage::qt_metacall(_c, _id, _a);
                     ^~~~~~~~~~~
specrunner.moc:128:49: error: no matching function for call to ‘HeadlessSpecRunnerPage::qt_static_metacall(HeadlessSpecRunnerPage*, QMetaObject::Call&, int&, void**&)’
             qt_static_metacall(this, _c, _id, _a);
                                                 ^
In file included from specrunner.cpp:336:
specrunner.moc:73:6: note: candidate: ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’
 void HeadlessSpecRunnerPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
      ^~~~~~~~~~~~~~~~~~~~~~
specrunner.moc:73:6: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
In file included from specrunner.cpp:336:
specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::consoleLog(const QString&, int, const QString&)’:
specrunner.moc:142:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [4])’
     QMetaObject::activate(this, &staticMetaObject, 0, _a);
                                                         ^
In file included from /usr/include/qt/QtCore/qobject.h:46,
                 from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’
     static void activate(QObject *sender, int signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note:   candidate expects 3 arguments, 4 provided
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’
     static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’
     static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
In file included from specrunner.cpp:336:
specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::internalLog(const QString&, const QString&)’:
specrunner.moc:149:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [3])’
     QMetaObject::activate(this, &staticMetaObject, 1, _a);
                                                         ^
In file included from /usr/include/qt/QtCore/qobject.h:46,
                 from /usr/include/qt/QtCore/qabstractanimation.h:43,
                 from /usr/include/qt/QtCore/QtCore:5,
                 from /usr/include/qt/QtGui/QtGuiDepends:3,
                 from /usr/include/qt/QtGui/QtGui:3,
                 from specrunner.cpp:24:
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’
     static void activate(QObject *sender, int signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:401:17: note:   candidate expects 3 arguments, 4 provided
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’
     static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:402:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’
     static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv);
                 ^~~~~~~~
/usr/include/qt/QtCore/qobjectdefs.h:403:17: note:   no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’
specrunner.cpp: In function ‘int main(int, char**)’:
specrunner.cpp:345:17: error: ‘getopt’ was not declared in this scope
     while ((c = getopt(argc, argv, "cr:")) != -1) {
                 ^~~~~~
specrunner.cpp:345:17: note: suggested alternative: ‘getpt’
     while ((c = getopt(argc, argv, "cr:")) != -1) {
                 ^~~~~~
                 getpt
specrunner.cpp:351:22: error: ‘optarg’ was not declared in this scope
           reporter = optarg;
                      ^~~~~~
specrunner.cpp:351:22: note: suggested alternative: ‘va_arg’
           reporter = optarg;
                      ^~~~~~
                      va_arg
specrunner.cpp:356:9: error: ‘optind’ was not declared in this scope
     if (optind == argc) {
         ^~~~~~
specrunner.cpp:356:9: note: suggested alternative: ‘qFind’
     if (optind == argc) {
         ^~~~~~
         qFind
specrunner.cpp:362:22: error: variable ‘QApplication app’ has initializer but incomplete type
     QApplication app(argc, argv);
                      ^~~~
specrunner.cpp:367:18: error: ‘optind’ was not declared in this scope
     for (index = optind; index < argc; index++) {
                  ^~~~~~
specrunner.cpp:367:18: note: suggested alternative: ‘qFind’
     for (index = optind; index < argc; index++) {
                  ^~~~~~
                  qFind
make: *** [Makefile:449: specrunner.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2 for inspection.
Results logged to /home/samps/.gem/ruby/2.5.1/extensions/x86_64-linux/2.5.0-static/jasmine-headless-webkit-0.4.2/gem_make.out

`gem install jasmine-headless-webkit -v '0.4.2' --source 'https://rubygems.org/'` ``` ERROR: Error installing jasmine-headless-webkit: ERROR: Failed to build gem native extension. current directory: /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner /home/samps/.rubies/ruby-2.5.1/bin/ruby -r ./siteconf20180719-16310-35vynb.rb extconf.rb Info: creating stash file /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner/.qmake.stash g++ -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt/mkspecs/features/data/dummy.cpp /usr/bin/moc -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include ./moc_predefs.h -Imacx-gcc -I/home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner -I/usr/include/qt -I/usr/include/qt/QtWebKit -I/usr/include/qt/QtGui -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I/usr/include/c++/8.1.0 -I/usr/include/c++/8.1.0/x86_64-pc-linux-gnu -I/usr/include/c++/8.1.0/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include-fixed -I/usr/include specrunner.cpp -o specrunner.moc g++ -c -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtWebKit -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib/qt/mkspecs/linux-g++ -o specrunner.o specrunner.cpp specrunner.cpp:35:38: error: invalid use of incomplete type ‘class QWebPage’ class HeadlessSpecRunnerPage: public QWebPage ^~~~~~~~ In file included from /usr/include/qt/QtWebKit/QtWebKit:8, from specrunner.cpp:25: /usr/include/qt/QtWebKit/qwebelement.h:164:18: note: forward declaration of ‘class QWebPage’ friend class QWebPage; ^~~~~~~~ specrunner.cpp: In member function ‘bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame*, const QString&)’: specrunner.cpp:52:59: warning: unused parameter ‘frame’ [-Wunused-parameter] bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg) ~~~~~~~~~~~^~~~~ specrunner.cpp:52:81: warning: unused parameter ‘msg’ [-Wunused-parameter] bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg) ~~~~~~~~~~~~~~~^~~ specrunner.cpp: In member function ‘void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame*, const QString&)’: specrunner.cpp:58:57: warning: unused parameter ‘frame’ [-Wunused-parameter] void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame *frame, const QString &msg) ~~~~~~~~~~~^~~~~ specrunner.cpp: In constructor ‘HeadlessSpecRunner::HeadlessSpecRunner()’: specrunner.cpp:117:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘settings’ m_page.settings()->enablePersistentStorage(); ^~~~~~~~ specrunner.cpp:118:73: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [20], HeadlessSpecRunner*, const char [13])’ connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const char *signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:214:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:217:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’ inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:469:32: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’ static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:234:43: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:118:73: required from here /usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ /usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:266:13: note: template argument deduction/substitution failed: specrunner.cpp:118:73: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:275:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:118:73: required from here /usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’ /usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:306:13: note: template argument deduction/substitution failed: specrunner.cpp:118:73: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:314:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:118:73: required from here /usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ specrunner.cpp:119:108: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [35], HeadlessSpecRunner*, const char [33])’ connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const char *signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:214:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:217:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’ inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:469:32: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’ static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:234:43: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:119:108: required from here /usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ /usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:266:13: note: template argument deduction/substitution failed: specrunner.cpp:119:108: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:275:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:119:108: required from here /usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’ /usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:306:13: note: template argument deduction/substitution failed: specrunner.cpp:119:108: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:314:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:119:108: required from here /usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ specrunner.cpp:120:102: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [31], HeadlessSpecRunner*, const char [31])’ connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const char *signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:214:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:217:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’ inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:469:32: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’ static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:234:43: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:120:102: required from here /usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ /usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:266:13: note: template argument deduction/substitution failed: specrunner.cpp:120:102: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:275:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:120:102: required from here /usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’ /usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:306:13: note: template argument deduction/substitution failed: specrunner.cpp:120:102: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:314:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:120:102: required from here /usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ specrunner.cpp:121:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ connect(m_page.mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(addJHW())); ^~~~~~~~~ specrunner.cpp: In member function ‘void HeadlessSpecRunner::go()’: specrunner.cpp:132:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘setPreferredContentsSize’ m_page.setPreferredContentsSize(QSize(1024, 600)); ^~~~~~~~~~~~~~~~~~~~~~~~ specrunner.cpp: In member function ‘void HeadlessSpecRunner::addJHW()’: specrunner.cpp:138:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ m_page.mainFrame()->addToJavaScriptWindowObject("JHW", this); ^~~~~~~~~ specrunner.cpp: In member function ‘void HeadlessSpecRunner::loadSpec()’: specrunner.cpp:143:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ m_page.mainFrame()->load(runnerFiles.dequeue()); ^~~~~~~~~ In file included from /usr/include/qt/QtCore/QtCore:4, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: specrunner.cpp: In member function ‘void HeadlessSpecRunner::watch(bool)’: specrunner.cpp:150:57: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ std::cerr << "Can't load " << qPrintable(m_page.mainFrame()->url().toString()) << ", the file may be broken." << std::endl; ^~~~~~~~~ specrunner.cpp:153:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(1); ^~~~~~~~ specrunner.cpp: In member function ‘bool HeadlessSpecRunner::hasElement(const char*)’: specrunner.cpp:162:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ return !m_page.mainFrame()->findFirstElement(select).isNull(); ^~~~~~~~~ specrunner.cpp: In member function ‘virtual void HeadlessSpecRunner::timerEvent(QTimerEvent*)’: specrunner.cpp:310:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(1); ^~~~~~~~ specrunner.cpp:323:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(exitCode); ^~~~~~~~ specrunner.cpp:332:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(1); ^~~~~~~~ In file included from specrunner.cpp:336: specrunner.moc: In static member function ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’: specrunner.moc:76:78: error: invalid static_cast from type ‘QObject*’ to type ‘HeadlessSpecRunnerPage*’ HeadlessSpecRunnerPage *_t = static_cast<HeadlessSpecRunnerPage *>(_o); ^ In file included from specrunner.cpp:336: specrunner.moc: At global scope: specrunner.moc:103:18: error: incomplete type ‘QWebPage’ used in nested name specifier { &QWebPage::staticMetaObject, qt_meta_stringdata_HeadlessSpecRunnerPage.data, ^~~~~~~~~~~~~~~~ specrunner.moc: In member function ‘virtual const QMetaObject* HeadlessSpecRunnerPage::metaObject() const’: specrunner.moc:110:21: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc:110:21: error: invalid use of non-static data member ‘QObject::d_ptr’ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc:110:50: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc:110:50: error: invalid use of non-static data member ‘QObject::d_ptr’ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc: In member function ‘virtual void* HeadlessSpecRunnerPage::qt_metacast(const char*)’: specrunner.moc:118:22: error: incomplete type ‘QWebPage’ used in nested name specifier return QWebPage::qt_metacast(_clname); ^~~~~~~~~~~ specrunner.moc: In member function ‘virtual int HeadlessSpecRunnerPage::qt_metacall(QMetaObject::Call, int, void**)’: specrunner.moc:123:21: error: incomplete type ‘QWebPage’ used in nested name specifier _id = QWebPage::qt_metacall(_c, _id, _a); ^~~~~~~~~~~ specrunner.moc:128:49: error: no matching function for call to ‘HeadlessSpecRunnerPage::qt_static_metacall(HeadlessSpecRunnerPage*, QMetaObject::Call&, int&, void**&)’ qt_static_metacall(this, _c, _id, _a); ^ In file included from specrunner.cpp:336: specrunner.moc:73:6: note: candidate: ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’ void HeadlessSpecRunnerPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) ^~~~~~~~~~~~~~~~~~~~~~ specrunner.moc:73:6: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ In file included from specrunner.cpp:336: specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::consoleLog(const QString&, int, const QString&)’: specrunner.moc:142:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [4])’ QMetaObject::activate(this, &staticMetaObject, 0, _a); ^ In file included from /usr/include/qt/QtCore/qobject.h:46, from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’ static void activate(QObject *sender, int signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate expects 3 arguments, 4 provided /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’ static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’ static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ In file included from specrunner.cpp:336: specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::internalLog(const QString&, const QString&)’: specrunner.moc:149:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [3])’ QMetaObject::activate(this, &staticMetaObject, 1, _a); ^ In file included from /usr/include/qt/QtCore/qobject.h:46, from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’ static void activate(QObject *sender, int signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate expects 3 arguments, 4 provided /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’ static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’ static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ specrunner.cpp: In function ‘int main(int, char**)’: specrunner.cpp:345:17: error: ‘getopt’ was not declared in this scope while ((c = getopt(argc, argv, "cr:")) != -1) { ^~~~~~ specrunner.cpp:345:17: note: suggested alternative: ‘getpt’ while ((c = getopt(argc, argv, "cr:")) != -1) { ^~~~~~ getpt specrunner.cpp:351:22: error: ‘optarg’ was not declared in this scope reporter = optarg; ^~~~~~ specrunner.cpp:351:22: note: suggested alternative: ‘va_arg’ reporter = optarg; ^~~~~~ va_arg specrunner.cpp:356:9: error: ‘optind’ was not declared in this scope if (optind == argc) { ^~~~~~ specrunner.cpp:356:9: note: suggested alternative: ‘qFind’ if (optind == argc) { ^~~~~~ qFind specrunner.cpp:362:22: error: variable ‘QApplication app’ has initializer but incomplete type QApplication app(argc, argv); ^~~~ specrunner.cpp:367:18: error: ‘optind’ was not declared in this scope for (index = optind; index < argc; index++) { ^~~~~~ specrunner.cpp:367:18: note: suggested alternative: ‘qFind’ for (index = optind; index < argc; index++) { ^~~~~~ qFind make: *** [Makefile:449: specrunner.o] Error 1 current directory: /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner make "DESTDIR=" clean rm -f moc_predefs.h rm -f specrunner.moc rm -f specrunner.o rm -f *~ core *.core current directory: /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner make "DESTDIR=" g++ -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt/mkspecs/features/data/dummy.cpp /usr/bin/moc -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB --include ./moc_predefs.h -Imacx-gcc -I/home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2/ext/jasmine-webkit-specrunner -I/usr/include/qt -I/usr/include/qt/QtWebKit -I/usr/include/qt/QtGui -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I/usr/include/c++/8.1.0 -I/usr/include/c++/8.1.0/x86_64-pc-linux-gnu -I/usr/include/c++/8.1.0/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0/include-fixed -I/usr/include specrunner.cpp -o specrunner.moc g++ -c -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtWebKit -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib/qt/mkspecs/linux-g++ -o specrunner.o specrunner.cpp specrunner.cpp:35:38: error: invalid use of incomplete type ‘class QWebPage’ class HeadlessSpecRunnerPage: public QWebPage ^~~~~~~~ In file included from /usr/include/qt/QtWebKit/QtWebKit:8, from specrunner.cpp:25: /usr/include/qt/QtWebKit/qwebelement.h:164:18: note: forward declaration of ‘class QWebPage’ friend class QWebPage; ^~~~~~~~ specrunner.cpp: In member function ‘bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame*, const QString&)’: specrunner.cpp:52:59: warning: unused parameter ‘frame’ [-Wunused-parameter] bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg) ~~~~~~~~~~~^~~~~ specrunner.cpp:52:81: warning: unused parameter ‘msg’ [-Wunused-parameter] bool HeadlessSpecRunnerPage::javaScriptConfirm(QWebFrame *frame, const QString &msg) ~~~~~~~~~~~~~~~^~~ specrunner.cpp: In member function ‘void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame*, const QString&)’: specrunner.cpp:58:57: warning: unused parameter ‘frame’ [-Wunused-parameter] void HeadlessSpecRunnerPage::javaScriptAlert(QWebFrame *frame, const QString &msg) ~~~~~~~~~~~^~~~~ specrunner.cpp: In constructor ‘HeadlessSpecRunner::HeadlessSpecRunner()’: specrunner.cpp:117:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘settings’ m_page.settings()->enablePersistentStorage(); ^~~~~~~~ specrunner.cpp:118:73: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [20], HeadlessSpecRunner*, const char [13])’ connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const char *signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:214:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:217:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’ inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:469:32: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’ static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:234:43: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:118:73: required from here /usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ /usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:266:13: note: template argument deduction/substitution failed: specrunner.cpp:118:73: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:275:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:118:73: required from here /usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’ /usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:306:13: note: template argument deduction/substitution failed: specrunner.cpp:118:73: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(watch(bool))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:314:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:118:73: required from here /usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ specrunner.cpp:119:108: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [35], HeadlessSpecRunner*, const char [33])’ connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const char *signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:214:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:217:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’ inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:469:32: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’ static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:234:43: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:119:108: required from here /usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ /usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:266:13: note: template argument deduction/substitution failed: specrunner.cpp:119:108: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:275:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:119:108: required from here /usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’ /usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:306:13: note: template argument deduction/substitution failed: specrunner.cpp:119:108: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(consoleLog(QString, int, QString)), this, SLOT(errorLog(QString, int, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:314:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:119:108: required from here /usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ specrunner.cpp:120:102: error: no matching function for call to ‘HeadlessSpecRunner::connect(HeadlessSpecRunnerPage*, const char [31], HeadlessSpecRunner*, const char [31])’ connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:214:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const char *signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:214:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:217:36: note: candidate: ‘static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)’ static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:217:36: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:469:32: note: candidate: ‘QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const’ inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:469:32: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘const QObject*’ /usr/include/qt/QtCore/qobject.h:234:43: note: candidate: ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)’ static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:234:43: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:120:102: required from here /usr/include/qt/QtCore/qobject.h:234:43: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ /usr/include/qt/QtCore/qobject.h:266:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:266:13: note: template argument deduction/substitution failed: specrunner.cpp:120:102: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:275:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:275:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:120:102: required from here /usr/include/qt/QtCore/qobject.h:275:13: error: no type named ‘type’ in ‘struct std::enable_if<false, QMetaObject::Connection>’ /usr/include/qt/QtCore/qobject.h:306:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot) ^~~~~~~ /usr/include/qt/QtCore/qobject.h:306:13: note: template argument deduction/substitution failed: specrunner.cpp:120:102: note: candidate expects 3 arguments, 4 provided connect(&m_page, SIGNAL(internalLog(QString, QString)), this, SLOT(internalLog(QString, QString))); ^ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:314:13: note: candidate: ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)’ connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot, ^~~~~~~ /usr/include/qt/QtCore/qobject.h:314:13: note: template argument deduction/substitution failed: /usr/include/qt/QtCore/qobject.h: In substitution of ‘template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType) [with Func1 = const char*; Func2 = const char*]’: specrunner.cpp:120:102: required from here /usr/include/qt/QtCore/qobject.h:314:13: error: no type named ‘Object’ in ‘struct QtPrivate::FunctionPointer<const char*>’ specrunner.cpp:121:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ connect(m_page.mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(addJHW())); ^~~~~~~~~ specrunner.cpp: In member function ‘void HeadlessSpecRunner::go()’: specrunner.cpp:132:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘setPreferredContentsSize’ m_page.setPreferredContentsSize(QSize(1024, 600)); ^~~~~~~~~~~~~~~~~~~~~~~~ specrunner.cpp: In member function ‘void HeadlessSpecRunner::addJHW()’: specrunner.cpp:138:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ m_page.mainFrame()->addToJavaScriptWindowObject("JHW", this); ^~~~~~~~~ specrunner.cpp: In member function ‘void HeadlessSpecRunner::loadSpec()’: specrunner.cpp:143:12: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ m_page.mainFrame()->load(runnerFiles.dequeue()); ^~~~~~~~~ In file included from /usr/include/qt/QtCore/QtCore:4, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: specrunner.cpp: In member function ‘void HeadlessSpecRunner::watch(bool)’: specrunner.cpp:150:57: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ std::cerr << "Can't load " << qPrintable(m_page.mainFrame()->url().toString()) << ", the file may be broken." << std::endl; ^~~~~~~~~ specrunner.cpp:153:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(1); ^~~~~~~~ specrunner.cpp: In member function ‘bool HeadlessSpecRunner::hasElement(const char*)’: specrunner.cpp:162:20: error: ‘class HeadlessSpecRunnerPage’ has no member named ‘mainFrame’ return !m_page.mainFrame()->findFirstElement(select).isNull(); ^~~~~~~~~ specrunner.cpp: In member function ‘virtual void HeadlessSpecRunner::timerEvent(QTimerEvent*)’: specrunner.cpp:310:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(1); ^~~~~~~~ specrunner.cpp:323:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(exitCode); ^~~~~~~~ specrunner.cpp:332:23: error: incomplete type ‘QApplication’ used in nested name specifier QApplication::instance()->exit(1); ^~~~~~~~ In file included from specrunner.cpp:336: specrunner.moc: In static member function ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’: specrunner.moc:76:78: error: invalid static_cast from type ‘QObject*’ to type ‘HeadlessSpecRunnerPage*’ HeadlessSpecRunnerPage *_t = static_cast<HeadlessSpecRunnerPage *>(_o); ^ In file included from specrunner.cpp:336: specrunner.moc: At global scope: specrunner.moc:103:18: error: incomplete type ‘QWebPage’ used in nested name specifier { &QWebPage::staticMetaObject, qt_meta_stringdata_HeadlessSpecRunnerPage.data, ^~~~~~~~~~~~~~~~ specrunner.moc: In member function ‘virtual const QMetaObject* HeadlessSpecRunnerPage::metaObject() const’: specrunner.moc:110:21: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc:110:21: error: invalid use of non-static data member ‘QObject::d_ptr’ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc:110:50: error: ‘QScopedPointer<QObjectData> QObject::d_ptr’ is protected within this context return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared protected here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc:110:50: error: invalid use of non-static data member ‘QObject::d_ptr’ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; ^~~~~ In file included from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobject.h:439:33: note: declared here QScopedPointer<QObjectData> d_ptr; ^~~~~ In file included from specrunner.cpp:336: specrunner.moc: In member function ‘virtual void* HeadlessSpecRunnerPage::qt_metacast(const char*)’: specrunner.moc:118:22: error: incomplete type ‘QWebPage’ used in nested name specifier return QWebPage::qt_metacast(_clname); ^~~~~~~~~~~ specrunner.moc: In member function ‘virtual int HeadlessSpecRunnerPage::qt_metacall(QMetaObject::Call, int, void**)’: specrunner.moc:123:21: error: incomplete type ‘QWebPage’ used in nested name specifier _id = QWebPage::qt_metacall(_c, _id, _a); ^~~~~~~~~~~ specrunner.moc:128:49: error: no matching function for call to ‘HeadlessSpecRunnerPage::qt_static_metacall(HeadlessSpecRunnerPage*, QMetaObject::Call&, int&, void**&)’ qt_static_metacall(this, _c, _id, _a); ^ In file included from specrunner.cpp:336: specrunner.moc:73:6: note: candidate: ‘static void HeadlessSpecRunnerPage::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’ void HeadlessSpecRunnerPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) ^~~~~~~~~~~~~~~~~~~~~~ specrunner.moc:73:6: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ In file included from specrunner.cpp:336: specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::consoleLog(const QString&, int, const QString&)’: specrunner.moc:142:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [4])’ QMetaObject::activate(this, &staticMetaObject, 0, _a); ^ In file included from /usr/include/qt/QtCore/qobject.h:46, from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’ static void activate(QObject *sender, int signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate expects 3 arguments, 4 provided /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’ static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’ static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ In file included from specrunner.cpp:336: specrunner.moc: In member function ‘void HeadlessSpecRunnerPage::internalLog(const QString&, const QString&)’: specrunner.moc:149:57: error: no matching function for call to ‘QMetaObject::activate(HeadlessSpecRunnerPage*, const QMetaObject*, int, void* [3])’ QMetaObject::activate(this, &staticMetaObject, 1, _a); ^ In file included from /usr/include/qt/QtCore/qobject.h:46, from /usr/include/qt/QtCore/qabstractanimation.h:43, from /usr/include/qt/QtCore/QtCore:5, from /usr/include/qt/QtGui/QtGuiDepends:3, from /usr/include/qt/QtGui/QtGui:3, from specrunner.cpp:24: /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, void**)’ static void activate(QObject *sender, int signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:401:17: note: candidate expects 3 arguments, 4 provided /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: candidate: ‘static void QMetaObject::activate(QObject*, const QMetaObject*, int, void**)’ static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:402:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: candidate: ‘static void QMetaObject::activate(QObject*, int, int, void**)’ static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv); ^~~~~~~~ /usr/include/qt/QtCore/qobjectdefs.h:403:17: note: no known conversion for argument 1 from ‘HeadlessSpecRunnerPage*’ to ‘QObject*’ specrunner.cpp: In function ‘int main(int, char**)’: specrunner.cpp:345:17: error: ‘getopt’ was not declared in this scope while ((c = getopt(argc, argv, "cr:")) != -1) { ^~~~~~ specrunner.cpp:345:17: note: suggested alternative: ‘getpt’ while ((c = getopt(argc, argv, "cr:")) != -1) { ^~~~~~ getpt specrunner.cpp:351:22: error: ‘optarg’ was not declared in this scope reporter = optarg; ^~~~~~ specrunner.cpp:351:22: note: suggested alternative: ‘va_arg’ reporter = optarg; ^~~~~~ va_arg specrunner.cpp:356:9: error: ‘optind’ was not declared in this scope if (optind == argc) { ^~~~~~ specrunner.cpp:356:9: note: suggested alternative: ‘qFind’ if (optind == argc) { ^~~~~~ qFind specrunner.cpp:362:22: error: variable ‘QApplication app’ has initializer but incomplete type QApplication app(argc, argv); ^~~~ specrunner.cpp:367:18: error: ‘optind’ was not declared in this scope for (index = optind; index < argc; index++) { ^~~~~~ specrunner.cpp:367:18: note: suggested alternative: ‘qFind’ for (index = optind; index < argc; index++) { ^~~~~~ qFind make: *** [Makefile:449: specrunner.o] Error 1 make failed, exit code 2 Gem files will remain installed in /home/samps/.gem/ruby/2.5.1/gems/jasmine-headless-webkit-0.4.2 for inspection. Results logged to /home/samps/.gem/ruby/2.5.1/extensions/x86_64-linux/2.5.0-static/jasmine-headless-webkit-0.4.2/gem_make.out ```
Sign in to join this conversation.
No Label
bug
doc
feature
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: github-migration/jasmine-headless-webkit#193
No description provided.