Para mantener mi proyecto Qt algo organizado (usando Qt Creator), tengo un archivo .pro y varios archivos .pri. Recientemente agregué una clase a uno de mis archivos .pri que tiene el mismo nombre de archivo que una clase que ya existía en un archivo .pri por separado.Qt MOC Filename Colisiones usando múltiples archivos .pri
La estructura de archivos y los archivos make generados por qmake parecen ignorar la colisión del nombre de archivo que sigue. Todos los archivos moc_ * generados se envían al mismo subdirectorio (ya sea de versión o de depuración, dependiendo) y uno termina sobrescribiendo el otro. Cuando trato de hacer el proyecto, recibo varias advertencias que se ven así:
Makefile.Release:318: warning: overriding commands for target `release/moc_file.cpp`
Y el proyecto no puede vincular.
Aquí hay un ejemplo simple de lo que estoy hablando.
estructura de directorios:
+ project_dir | + subdir1 | | - file.h | | - file.cpp | + subdir2 | | - file.h | | - file.cpp | - main.cpp | - project.pro | - subdir1.pri | - subdir2.pri
Contenido de project.pro:
TARGET = project
TEMPLATE = app
include(subdir1.pri)
include(subdir2.pri)
SOURCES += main.cpp
Contenido de subdir1.pri:
HEADERS += subdir1/file.h
SOURCES += subdir1/file.cpp
Contenido de subdir2.pri:
HEADERS += subdir2/file.h
SOURCES += subdir2/file.cpp
¿Hay alguna manera de decirle a qmake que genere un sistema que coloque los archivos moc_ * de archivos .pri separados en subdirectorios separados?
no necesariamente de acuerdo con el argumento de confusión en cuanto a mi incluyen declaraciones en general, sería de la forma: # include "subdir1/file.h" nontheless, usted parece ser correcta. Los nombres de archivo únicos parecen ser la única manera de hacerlo aquí. – Stephen
Creo que los archivos moc y los archivos del objeto no colisionarán ahora si siguieron los míos ... Sin embargo, a diferencia de tu comentario :) Corrígeme si el mío está mal. – liaK