No es necesario utilizar QtCreator para escribir un programa Qt.
Tampoco tiene que usar qmake
pero está solicitando problemas al no usarlo.
Para hacer algo remotamente interesante en Qt, inevitablemente terminarás subclasificando QObject
. Todas estas subclases requieren la macro Q_OBJECT
en su definición que habilita la sintaxis señal/ranura. Esta sintaxis no es C++ normal y no se puede compilar usando g ++. Los archivos que contienen definiciones de clase con Q_OBJECT
se deben ejecutar a través de Qt's meta-object compiler que se llama moc
. Esto significa que tiene que determinar qué archivos deben tener moc
aplicado a ellos, luego ejecutar moc
en ellos, y luego compilar el archivo cpp resultante con g++
. Esta es la razón por la que Qt suministra qmake
. Genera las reglas correctas en el Makefile para ti.
Los archivos del proyecto Qt. Pro son bastante sencillos de usar y seriamente recomiendo que los use. Recuerde, qmake
es una herramienta de línea de comandos como g++
. También, en realidad puede crear un archivo de proyecto esqueleto para usted mediante el suministro de la opción de modo -project
para empezar sólo se puede hacer
qmake -project
qmake
make
y ya está.En la práctica me parece que el archivo de proyecto generado puede faltar la declaración de las bibliotecas Qt adicionales que podrían estar utilizando lo que podría tener que añadir una línea como
QT += opengl
si, por ejemplo, que ha incluido algo así como QGLWidget
.
Entiendo que no desee utilizar Qt Creator, pero ¿por qué no utilizar qmake? Todo lo qmake hace es generar un Makefile para ti; si no usas qmake, tendrás que escribir el mismo Makefile y, lo que es peor, tendrás que mantener a mano un Makefile diferente para cada plataforma en la que quieras compilar. Con qmake solo tiene que crear un solo archivo .pro, en lugar de tener que recordar cómo un Makefile de MSVC difiere de un Makefile de gnu, etc. etc. –
Porque quiero saber qué sucede durante la compilación en lugar de utilizar una herramienta automática. Es más fácil con qmake o Qt Creator, pero me gusta hacer esta tarea manualmente. – Squall
¿Desea escribir sus archivos MAKE manualmente, en lugar de usar un generador como qmake, cmake o autotools? La única razón para esto es si desea aprender la sintaxis de Makefile. El resultado será una carga de mantenimiento, no portátil, etc. –