philw
15th June 2016, 01:53
In the course of our Qt4 to Qt 5.5.1 port, we're having a problem replicating a successful application build from one development machine to another.
On the 2nd machine, no qt/mocinclude.tmp file is being created (in the same directories where all the generated moc_.cpp and ui_.h files go).
WHY MIGHT THAT BE?
This is resulting in the following problem with the MOC compilation of Q_OBJECT class header files:
moc: Cannot open options file specified with @
list itemQCommandLineParser: argument list cannot be empty, it should contain at least the executable name
The .vcxproj files contain lines such as the following with a "@./qt/mocinclude.tmp" term:
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
setlocal
if errorlevel 1 goto VCEnd
C:\Riverware\tools\
Qt-551\qtbase\bin\moc.exe -DWIN32 -DWIN64 -DIL_STD -D_WIN32 -DCW_PRESTOPLOT -DCWDEBUG
-DUSE_NON_CONST -DQT_WEBKITWIDGETS_LIB -DQT_WEBKIT_LIB -DQT_PRINTSUPPORT_LIB
-DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -DQT_CONCURRENT_LIB
-DQT_CORE_LIB -D_MSC_VER=1600 -D_WIN32 -D_WIN64 @./qt/mocinclude.tmp
AccountMgrDlg.hpp -o qt\moc_AccountMgrDlg.cpp
if errorlevel 1 goto
VCEnd
endlocal</Command>
We're using Visual Studio 2010. The first machine (on which Qt 5.5.1 was actually built) is Windows 7. The second machine is Windows 8.1.
We DO have a lot of "includes". This is from a relevant .pro file:
INCLUDEPATH += \
../Accounting \
../AccountingGUI \
../ClientServer \
../DbDmi \
../EngrObjs \
../GUI \
../Halibut \
../Opt \
../Optimize \
../OracleConnect \
../Q3GUI \
../QtAccounting \
../QtDmi \
../QtRpl \
../QtRun \
../QtSCT \
../QtUtils \
../Rcl \
../Remote \
../Rpl \
../RplExpression \
../RwDoc \
../RwOracle \
../RwQt \
../Servers \
../Sim \
../Units \
../Utils \
../VCXX \
C:/RiverWare/tools/RdfToExcel_Qt-551/include \
C:/RiverWare/tools/Qwt-612_Qt-551/src \
C:/RiverWare/tools/RepriseLM-12.0 \
C:/RiverWare/tools/CPLEX-125/cplex/include \
C:/RiverWare/tools/CPLEX-125/concert/include \
C:/RiverWare/tools/Stubs/include \
C:/RiverWare/tools/tcl-8.6.4/generic \
C:/RiverWare/tools/gdal-1.9.2/include \
C:/RiverWare/tools/netCDF-4.3.2/include \
C:/Riverware/tools/Quazip-0.7.1_Qt-551 \
C:/RiverWare/tools/protobuf-2.6.0/include \
C:/RiverWare/tools/icu-55.1/include \
$$[QT_INSTALL_PREFIX]/src/3rdparty/zlib
On the original machine, the generated qt/mocinclude.tmp files have this content:
-IC:/Riverware/tools/Qt-551/qtbase/mkspecs/win32-msvc2010
-IC:/Riverware/staff/philw/WinQt5Port3/QtAccounting
-IC:/Riverware/staff/philw/WinQt5Port3/Accounting
-IC:/Riverware/staff/philw/WinQt5Port3/AccountingGUI
-IC:/Riverware/staff/philw/WinQt5Port3/ClientServer
-IC:/Riverware/staff/philw/WinQt5Port3/DbDmi
-IC:/Riverware/staff/philw/WinQt5Port3/EngrObjs
-IC:/Riverware/staff/philw/WinQt5Port3/GUI
-IC:/Riverware/staff/philw/WinQt5Port3/Halibut
-IC:/Riverware/staff/philw/WinQt5Port3/Opt
-IC:/Riverware/staff/philw/WinQt5Port3/Optimize
-IC:/Riverware/staff/philw/WinQt5Port3/OracleConnect
-IC:/Riverware/staff/philw/WinQt5Port3/Q3GUI
-IC:/Riverware/staff/philw/WinQt5Port3/QtAccounting
-IC:/Riverware/staff/philw/WinQt5Port3/QtDmi
-IC:/Riverware/staff/philw/WinQt5Port3/QtRpl
-IC:/Riverware/staff/philw/WinQt5Port3/QtRun
-IC:/Riverware/staff/philw/WinQt5Port3/QtSCT
-IC:/Riverware/staff/philw/WinQt5Port3/QtUtils
-IC:/Riverware/staff/philw/WinQt5Port3/Rcl
-IC:/Riverware/staff/philw/WinQt5Port3/Remote
-IC:/Riverware/staff/philw/WinQt5Port3/Rpl
-IC:/Riverware/staff/philw/WinQt5Port3/RplExpression
-IC:/Riverware/staff/philw/WinQt5Port3/RwDoc
-IC:/Riverware/staff/philw/WinQt5Port3/RwOracle
-IC:/Riverware/staff/philw/WinQt5Port3/RwQt
-IC:/Riverware/staff/philw/WinQt5Port3/Servers
-IC:/Riverware/staff/philw/WinQt5Port3/Sim
-IC:/Riverware/staff/philw/WinQt5Port3/Units
-IC:/Riverware/staff/philw/WinQt5Port3/Utils
-IC:/Riverware/staff/philw/WinQt5Port3/VCXX
-IC:/RiverWare/tools/RdfToExcel_Qt-551/include
-IC:/RiverWare/tools/Qwt-612_Qt-551/src
-IC:/RiverWare/tools/RepriseLM-12.0
-IC:/RiverWare/tools/CPLEX-125/cplex/include
-IC:/RiverWare/tools/CPLEX-125/concert/include
-IC:/RiverWare/tools/Stubs/include
-IC:/RiverWare/tools/tcl-8.6.4/generic
-IC:/RiverWare/tools/gdal-1.9.2/include
-IC:/RiverWare/tools/netCDF-4.3.2/include
-IC:/Riverware/tools/Quazip-0.7.1_Qt-551
-IC:/RiverWare/tools/protobuf-2.6.0/include
-IC:/RiverWare/tools/icu-55.1/include
-IC:/Riverware/tools/Qt-551/qtbase/src/3rdparty/zlib
-IC:/RiverWare/tools/flexlm
-IC:/RiverWare/tools/Oracle-12c/include
-IC:/Riverware/tools/Qt-551/qtwebkit/include
-IC:/Riverware/tools/Qt-551/qtwebkit/include/QtWebKitWidgets
-IC:/Riverware/tools/Qt-551/qtbase/include
-IC:/Riverware/tools/Qt-551/qtbase/include/QtWebKitWidgets
-IC:/Riverware/tools/Qt-551/qtwebkit/include/QtWebKit
-IC:/Riverware/tools/Qt-551/qtbase/include/QtWebKit
-IC:/Riverware/tools/Qt-551/qtbase/include/QtPrintSupport
-IC:/Riverware/tools/Qt-551/qtbase/include/QtWidgets
-IC:/Riverware/tools/Qt-551/qtbase/include/QtGui
-IC:/Riverware/tools/Qt-551/qtbase/include/QtNetwork
-IC:/Riverware/tools/Qt-551/qtbase/include/QtXml
-IC:/Riverware/tools/Qt-551/qtbase/include/QtConcurrent
-IC:/Riverware/tools/Qt-551/qtbase/include/QtCore
On the 2nd machine, no qt/mocinclude.tmp file is being created (in the same directories where all the generated moc_.cpp and ui_.h files go).
WHY MIGHT THAT BE?
This is resulting in the following problem with the MOC compilation of Q_OBJECT class header files:
moc: Cannot open options file specified with @
list itemQCommandLineParser: argument list cannot be empty, it should contain at least the executable name
The .vcxproj files contain lines such as the following with a "@./qt/mocinclude.tmp" term:
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
setlocal
if errorlevel 1 goto VCEnd
C:\Riverware\tools\
Qt-551\qtbase\bin\moc.exe -DWIN32 -DWIN64 -DIL_STD -D_WIN32 -DCW_PRESTOPLOT -DCWDEBUG
-DUSE_NON_CONST -DQT_WEBKITWIDGETS_LIB -DQT_WEBKIT_LIB -DQT_PRINTSUPPORT_LIB
-DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -DQT_CONCURRENT_LIB
-DQT_CORE_LIB -D_MSC_VER=1600 -D_WIN32 -D_WIN64 @./qt/mocinclude.tmp
AccountMgrDlg.hpp -o qt\moc_AccountMgrDlg.cpp
if errorlevel 1 goto
VCEnd
endlocal</Command>
We're using Visual Studio 2010. The first machine (on which Qt 5.5.1 was actually built) is Windows 7. The second machine is Windows 8.1.
We DO have a lot of "includes". This is from a relevant .pro file:
INCLUDEPATH += \
../Accounting \
../AccountingGUI \
../ClientServer \
../DbDmi \
../EngrObjs \
../GUI \
../Halibut \
../Opt \
../Optimize \
../OracleConnect \
../Q3GUI \
../QtAccounting \
../QtDmi \
../QtRpl \
../QtRun \
../QtSCT \
../QtUtils \
../Rcl \
../Remote \
../Rpl \
../RplExpression \
../RwDoc \
../RwOracle \
../RwQt \
../Servers \
../Sim \
../Units \
../Utils \
../VCXX \
C:/RiverWare/tools/RdfToExcel_Qt-551/include \
C:/RiverWare/tools/Qwt-612_Qt-551/src \
C:/RiverWare/tools/RepriseLM-12.0 \
C:/RiverWare/tools/CPLEX-125/cplex/include \
C:/RiverWare/tools/CPLEX-125/concert/include \
C:/RiverWare/tools/Stubs/include \
C:/RiverWare/tools/tcl-8.6.4/generic \
C:/RiverWare/tools/gdal-1.9.2/include \
C:/RiverWare/tools/netCDF-4.3.2/include \
C:/Riverware/tools/Quazip-0.7.1_Qt-551 \
C:/RiverWare/tools/protobuf-2.6.0/include \
C:/RiverWare/tools/icu-55.1/include \
$$[QT_INSTALL_PREFIX]/src/3rdparty/zlib
On the original machine, the generated qt/mocinclude.tmp files have this content:
-IC:/Riverware/tools/Qt-551/qtbase/mkspecs/win32-msvc2010
-IC:/Riverware/staff/philw/WinQt5Port3/QtAccounting
-IC:/Riverware/staff/philw/WinQt5Port3/Accounting
-IC:/Riverware/staff/philw/WinQt5Port3/AccountingGUI
-IC:/Riverware/staff/philw/WinQt5Port3/ClientServer
-IC:/Riverware/staff/philw/WinQt5Port3/DbDmi
-IC:/Riverware/staff/philw/WinQt5Port3/EngrObjs
-IC:/Riverware/staff/philw/WinQt5Port3/GUI
-IC:/Riverware/staff/philw/WinQt5Port3/Halibut
-IC:/Riverware/staff/philw/WinQt5Port3/Opt
-IC:/Riverware/staff/philw/WinQt5Port3/Optimize
-IC:/Riverware/staff/philw/WinQt5Port3/OracleConnect
-IC:/Riverware/staff/philw/WinQt5Port3/Q3GUI
-IC:/Riverware/staff/philw/WinQt5Port3/QtAccounting
-IC:/Riverware/staff/philw/WinQt5Port3/QtDmi
-IC:/Riverware/staff/philw/WinQt5Port3/QtRpl
-IC:/Riverware/staff/philw/WinQt5Port3/QtRun
-IC:/Riverware/staff/philw/WinQt5Port3/QtSCT
-IC:/Riverware/staff/philw/WinQt5Port3/QtUtils
-IC:/Riverware/staff/philw/WinQt5Port3/Rcl
-IC:/Riverware/staff/philw/WinQt5Port3/Remote
-IC:/Riverware/staff/philw/WinQt5Port3/Rpl
-IC:/Riverware/staff/philw/WinQt5Port3/RplExpression
-IC:/Riverware/staff/philw/WinQt5Port3/RwDoc
-IC:/Riverware/staff/philw/WinQt5Port3/RwOracle
-IC:/Riverware/staff/philw/WinQt5Port3/RwQt
-IC:/Riverware/staff/philw/WinQt5Port3/Servers
-IC:/Riverware/staff/philw/WinQt5Port3/Sim
-IC:/Riverware/staff/philw/WinQt5Port3/Units
-IC:/Riverware/staff/philw/WinQt5Port3/Utils
-IC:/Riverware/staff/philw/WinQt5Port3/VCXX
-IC:/RiverWare/tools/RdfToExcel_Qt-551/include
-IC:/RiverWare/tools/Qwt-612_Qt-551/src
-IC:/RiverWare/tools/RepriseLM-12.0
-IC:/RiverWare/tools/CPLEX-125/cplex/include
-IC:/RiverWare/tools/CPLEX-125/concert/include
-IC:/RiverWare/tools/Stubs/include
-IC:/RiverWare/tools/tcl-8.6.4/generic
-IC:/RiverWare/tools/gdal-1.9.2/include
-IC:/RiverWare/tools/netCDF-4.3.2/include
-IC:/Riverware/tools/Quazip-0.7.1_Qt-551
-IC:/RiverWare/tools/protobuf-2.6.0/include
-IC:/RiverWare/tools/icu-55.1/include
-IC:/Riverware/tools/Qt-551/qtbase/src/3rdparty/zlib
-IC:/RiverWare/tools/flexlm
-IC:/RiverWare/tools/Oracle-12c/include
-IC:/Riverware/tools/Qt-551/qtwebkit/include
-IC:/Riverware/tools/Qt-551/qtwebkit/include/QtWebKitWidgets
-IC:/Riverware/tools/Qt-551/qtbase/include
-IC:/Riverware/tools/Qt-551/qtbase/include/QtWebKitWidgets
-IC:/Riverware/tools/Qt-551/qtwebkit/include/QtWebKit
-IC:/Riverware/tools/Qt-551/qtbase/include/QtWebKit
-IC:/Riverware/tools/Qt-551/qtbase/include/QtPrintSupport
-IC:/Riverware/tools/Qt-551/qtbase/include/QtWidgets
-IC:/Riverware/tools/Qt-551/qtbase/include/QtGui
-IC:/Riverware/tools/Qt-551/qtbase/include/QtNetwork
-IC:/Riverware/tools/Qt-551/qtbase/include/QtXml
-IC:/Riverware/tools/Qt-551/qtbase/include/QtConcurrent
-IC:/Riverware/tools/Qt-551/qtbase/include/QtCore