Unsolved Specify directories for UIC, MOC, and Object Files for each Module in an Application
-
Hi,
Can you show your current .pro file ?
-
The file is a bit long. The classes that are called the same are AppDlg and ConfDlg. They belong to the modules "Morph" and "Sgm".
TARGET = Cimahis TEMPLATE = app #Config. Compilador QMAKE_CXXFLAGS += -std=c++11 #Modulos Qt QT += webkit #Dependencia Externas unix { INCLUDEPATH += \ /usr/include/opencv \ /usr/include/opencv2 LIBS += \ -lopencv_core \ -lopencv_imgproc \ -lopencv_highgui } win32 { INCLUDEPATH += \ 3rdparty/tbb/include \ 3rdparty/opencv/include LIBS += \ -L$${PWD}/3rdparty/tbb/bin/win -ltbb \ -L$${PWD}/3rdparty/opencv/bin/win -lopencv_core249d \ -lopencv_imgproc249d \ -lopencv_highgui249d #conf. ambiente de ejecucion env_config_target.target = sys_path_config env_config_target.commands = set PATH=$(PATH);$${PWD}/3rdparty/tbb/bin/win;$${PWD}/3rdparty/opencv/bin/win QMAKE_EXTRA_TARGETS += env_config_target PRE_TARGETDEPS += sys_path_config } #Input INCLUDEPATH += \ headers \ headers/color \ headers/ctrs \ headers/morph \ headers/morph/morphometry \ headers/texture \ headers/sgm DEPENDPATH += \ sources \ sources/color \ sources/ctrs \ sources/morph \ sources/morph/morphometry \ sources/texture \ sources/sgm FORMS += \ forms/ComboBox.ui \ forms/Reporte.ui \ forms/Ayuda.ui \ forms/visualizarhistograma.ui \ forms/ventanaumbral.ui \ forms/elegirFiltros.ui \ forms/ventanaparametrosfiltro.ui \ forms/configurarwavelets.ui \ forms/interfazforma.ui \ forms/graficoparametros.ui \ forms/ventanaconfigparametros.ui \ forms/morph/AppDlg.ui \ forms/morph/ConfDlg.ui \ forms/sgm/AppDlg.ui \ forms/sgm/ConfDlg.ui HEADERS += \ headers/Misc.h \ headers/Imagen.h \ headers/interfazSistema.h \ headers/ComboBox.h \ headers/Reporte.h \ headers/Ayuda.h \ headers/AreaImagen.h \ headers/qcustomplot.h \ headers/Cimahis.h \ headers/color/Color.h \ headers/color/fabricaObjetos.h \ headers/color/Histograma.h \ headers/color/visualizarhistograma.h \ headers/color/lienzoHistograma.h \ headers/color/ventanaumbral.h \ headers/color/elegirFiltros.h \ headers/color/ventanaparametrosfiltro.h \ headers/color/filtros.h \ headers/color/threadFiltro.h \ headers/color/segmentacion.h \ headers/ctrs/costos.h \ headers/ctrs/interfazforma.h \ headers/ctrs/livewire.h \ headers/ctrs/qgraphicsviewpersonalizado.h \ headers/morph/Morph.h \ headers/morph/AppDlg.h \ headers/morph/ConfDlg.h \ headers/morph/morphometry/graficoparametros.h \ headers/morph/morphometry/morfometria.h \ headers/morph/morphometry/punto.h \ headers/morph/morphometry/ventanaconfigparametros.h \ headers/texture/Wavelet.h \ headers/texture/ConfigurarWavelets.h \ headers/sgm/Sgm.h \ headers/sgm/GfxIt.h \ headers/sgm/GfxMkr.h \ headers/sgm/GfxBox.h \ headers/sgm/GfxCtr.h \ headers/sgm/ImVw.h \ headers/sgm/AppDlg.h \ headers/sgm/ConfDlg.h SOURCES += \ sources/Misc.cpp \ sources/Imagen.cpp \ sources/interfazSistema.cpp \ sources/ComboBox.cpp \ sources/Reporte.cpp \ sources/Ayuda.cpp \ sources/AreaImagen.cpp \ sources/qcustomplot.cpp \ sources/Cimahis.cpp \ sources/color/Color.cpp \ sources/color/fabricaObjetos.cpp \ sources/color/Histograma.cpp \ sources/color/visualizarhistograma.cpp \ sources/color/lienzoHistograma.cpp \ sources/color/ventanaumbral.cpp \ sources/color/elegirFiltros.cpp \ sources/color/ventanaparametrosfiltro.cpp \ sources/color/filtros.cpp \ sources/color/threadFiltro.cpp \ sources/color/segmentacion.cpp \ sources/ctrs/costos.cpp \ sources/ctrs/interfazforma.cpp \ sources/ctrs/livewire.cpp \ sources/ctrs/qgraphicsviewpersonalizado.cpp \ sources/morph/Morph.cpp \ sources/morph/AppDlg.cpp \ sources/morph/ConfDlg.cpp \ sources/morph/morphometry/graficoparametros.cpp \ sources/morph/morphometry/morfometria.cpp \ sources/morph/morphometry/punto.cpp \ sources/morph/morphometry/ventanaconfigparametros.cpp \ sources/texture/Wavelet.cpp \ sources/texture/ConfigurarWavelets.cpp \ sources/sgm/Sgm.cpp \ sources/sgm/GfxIt.cpp \ sources/sgm/GfxMkr.cpp \ sources/sgm/GfxBox.cpp \ sources/sgm/GfxCtr.cpp \ sources/sgm/ImVw.cpp \ sources/sgm/AppDlg.cpp \ sources/sgm/ConfDlg.cpp \ sources/main.cpp RESOURCES += \ resources/resources.qrc #Output UI_DIR = uic MOC_DIR = moc OBJECTS_DIR = obj #Instalacion CONFIG( debug, debug|release): DESTDIR = $${OUT_PWD}/debug CONFIG(release, debug|release): DESTDIR = $${OUT_PWD}/release unix: OS_TAG = unix win32: OS_TAG = win tbblib.path = $$DESTDIR tbblib.files = 3rdparty/tbb/bin/$${OS_TAG}/* opencvlib.path = $$DESTDIR opencvlib.files = 3rdparty/opencv/bin/$${OS_TAG}/* INSTALLS += tbblib opencvlib
-
Then use
CONFIG += object_parallel_to_source
-
Okay, but
Can you give me some explanation (or some link to study) about it?
-
-
I continue to have problems compiling. Warnings of type:
Ignoring old recipe for target 'moc/moc_AppDlg.cpp'
Overriding recipe for target 'moc/moc_AppDlg.cpp'In addition to several related errors: The member functions of Morph::AppDlg are not defined.
-
Did you re-run qmake or do a clean re-build (i.e. nuke the shadow-build folder) after adding the
CONFIG
option ? -
Yes. I deleted the shadow-build folder, and rebuilt the application. I continue to get errors/warnings mentioned above.
I'm working with Qt 4.8.6 and Qt Creator 2.5.2 (I do not know if that influences).
-
Oh yes, that influences greatly since
object_parallel_to_source
is Qt 5 feature.Are you locked to that old version of Qt ?
-
Yes, at least temporarily I am required to work with Qt 4.8.6.
Is there any option to get that same functionality in the Qt version I'm working with?
-
If you are building Qt yourself, you could try to back port the patch.
-
I'm not building Qt by myself.
I wonder if there is any way (set of instructions specified in the .pro file, maybe something like what I used under the comment #Instalacion), in Qt 4.8.6, to achieve something similar to the functionality of the object_parallel_to_source option; or something that allows me to have two classes of the same name in my project.
Can you do such a thing?
-
You can use
object_with_source
BUT (and it's a big one) you lose the ability to do out of source builds.On a side note, Qt 4.8.6 is not the latest of the Qt 4 series, there's Qt 4.8.7.
-
I will try to use object_with_source.
On the other hand, I wonder if it will be possible to manually emulate (with instructions in the .pro file, with some script, or something like that) the functionality of the object_parallel_to_source option.
-
I'd say highly unlikely. Note that you could also try with cmake rather than qmake.