Move from QML Only Application to Qt Quick Application with C++
-
I have been developing my application with only QML and JavaScript. I recognize that I need to move to C++ soon and so I started that transition today. I created a new Qt Quick Application and imported all of my QML Files into it. When I try to build the Main.Pro file I receive:
@:-1: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -L not found@
@:-1: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -F not found@
@:-1: error: [copydeploymentfolders] Error 1@
Any help would be appreciated. Thanks.
-
check the console output for more detailed information.
-
@Running build steps for project Main...
Configuration unchanged, skipping qmake step.
Starting: "/usr/bin/make" -w
make: Entering directory/Users/kp/Desktop/Precision Work/Harvest DU Repository/Main-build-desktop' g++ -c -pipe -g -gdwarf-2 -Wall -W -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Qt4.7/mkspecs/macx-g++ -I../Main -I/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/usr/include/QtCore -I/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/usr/include/QtGui -I/Library/Frameworks/QtDeclarative.framework/Versions/4/Headers -I/usr/include/QtDeclarative -I/usr/include -I../Main/qmlapplicationviewer -I. -I../Main -I. -F/Library/Frameworks -o main.o ../Main/main.cpp g++ -headerpad_max_install_names -o Main.app/Contents/MacOS/Main main.o qmlapplicationviewer.o moc_qmlapplicationviewer.o -F/Library/Frameworks -L/Library/Frameworks -framework QtDeclarative -L/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib -F/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib -framework QtScript -framework QtSvg -framework QtSql -framework QtXmlPatterns -framework QtOpenGL -framework QtNetwork -framework QtGui -framework QtCore ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -L not found ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -F not found Copying application data... cp: Repository/Main/../QML: No such file or directory make: *** [copydeploymentfolders] Error 1 make: Leaving directory
/Users/kp/Desktop/Precision Work/Harvest DU Repository/Main-build-desktop'
The process "/usr/bin/make" exited with code 2.
Error while building project Main (target: Desktop)
When executing build step 'Make'@ -
Seems to be some issue with the path
bq. cp: Repository/Main/../QML: No such file or directory
Its not able to find the above location, please verify this in your code.
-
The folder exists... and all that is in my cpp file is this:
@#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"int main(int argc, char *argv[])
{
QApplication app(argc, argv);QmlApplicationViewer viewer; viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); viewer.setMainQmlFile(QLatin1String("QML/QMLFinal.qml")); viewer.showExpanded(); return app.exec();
}
@ -
Check if the folder exists at this path
@/Users/kp/Desktop/Precision Work/Harvest DU Repository/Main-build-desktop@
-
It does not. Do I need to copy it in there manually?
-
copying it manually will fix it. But you will have to add it in your .pro file or better still put QML into your resource file.
-
how do I add it to my pro file or resource file? Will doing so negate the need to move it in manually?
-
[quote author="kyleplattner" date="1293047005"]how do I add it to my pro file or resource file? Will doing so negate the need to move it in manually?[/quote]
You can add them as OTHER_FILES to .pro
-
[quote author="kyleplattner" date="1293047005"]how do I add it to my pro file or resource file? Will doing so negate the need to move it in manually?[/quote]
The best option is to use "resource":http://doc.qt.nokia.com/4.0/resources.html. You can use Qt Creator to add a new resource. Just check the docs for more info.
-
Seems like this is a bug that needs fixing.
-
Still having problems with this:
ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -L not found
ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -F not foundAny ideas there?
-
[quote author="QtK" date="1293047938"]
[quote author="kyleplattner" date="1293047413"]Seems like this is a bug that needs fixing. [/quote]No its not a bug. But yes it can be enhanced, so that Qt Creator does it automatically[/quote]
-
[quote author="kyleplattner" date="1293047844"]Still having problems with this:
ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -L not found
ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -F not foundAny ideas there?[/quote]
Its a warning right. Your app must be compiled properly now.
-
Added the .qrc and still having this error stop my build:
@Running build steps for project Main...
Configuration unchanged, skipping qmake step.
Starting: "/usr/bin/make" -w
make: Entering directory/Users/kp/Desktop/Precision Work/Harvest DU Repository/Main-build-desktop' /Developer/Tools/Qt/rcc -name Main ../Main/Main.qrc -o qrc_Main.cpp g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Qt4.7/mkspecs/macx-g++ -I../Main -I/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/usr/include/QtCore -I/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/usr/include/QtGui -I/Library/Frameworks/QtDeclarative.framework/Versions/4/Headers -I/usr/include/QtDeclarative -I/usr/include -I../Main/qmlapplicationviewer -I. -I../Main -I. -F/Library/Frameworks -o qrc_Main.o qrc_Main.cpp g++ -headerpad_max_install_names -o Main.app/Contents/MacOS/Main main.o qmlapplicationviewer.o moc_qmlapplicationviewer.o qrc_Main.o -F/Library/Frameworks -L/Library/Frameworks -framework QtDeclarative -L/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib -F/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib -framework QtScript -framework QtSvg -framework QtSql -framework QtXmlPatterns -framework QtOpenGL -framework QtNetwork -framework QtGui -framework QtCore ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -L not found ld: warning: directory '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' following -F not found Copying application data... cp: Repository/Main/../QML: No such file or directory make: *** [copydeploymentfolders] Error 1 make: Leaving directory
/Users/kp/Desktop/Precision Work/Harvest DU Repository/Main-build-desktop'
The process "/usr/bin/make" exited with code 2.
Error while building project Main (target: Desktop)
When executing build step 'Make'@ -
The error is same as you received above right. Please try it first and then make an attempt to post or ask - this way you will learn better.
Also you might have added it in your .qrc, but are you loading qml file from that path.
-
When I try running the compiled application I get:
<Unknown File>: File error for URL file:///Users/kp/Desktop/Precision Work/Harvest DU Repository/Main-build-desktop/Main.app/Contents/Resources/QML/QMLFinal.qml
-
Would someone be willing to make a Wiki on the process of going from a QML only application to a Qt Quick C++ Application. It seems like a process many people go through so it would be helpful. I have found the process really difficult and I still have not got it done yet. Thanks.
-
What version of Creator are you using? This might be something that has been recently improved -- I'm compiling Creator from source, and the conversion from QML-only to QML + C++ project seems to "just work", at least for a small test case (and in general, QML support in Creator has been progressing at a very rapid pace in recent months). I've found the Creator team very responsive to feedback -- if you have suggestions for improving the process I'd highly recommend adding a report on bugreports.qt.nokia.com.
Regards,
Michael