[CMake] Errors in OSX platform and ubuntu of a Qt app

Mike Jackson imikejackson at gmail.com
Wed Dec 12 10:00:57 EST 2007


Well, I _still_ don't have postgres SQL, but the following link error:

Ui_CobroPagoBase::setupUi(QWidget*)

leads me to believe that there is a missing include directory or link  
directory in the cmake file that somehow you are getting away with on  
Debian and not on OS X.


###########################################
# Plugin for bulmacont					  #
###########################################
#pluginregistrodeiva

set (plugin pluginregistrodeiva)

file(GLOB_RECURSE plugin_SRC *.c *.cpp *.cxx)
file(GLOB_RECURSE plugin_MOCS *.hpp *.h)
file(GLOB_RECURSE plugin_UIS *.ui)

####----> Note Changed order of following lines
set(QT_USE_QTASSISTANT true)
set(QT_USE_QTXML true)
###---> QT_USE_FILE needs the above variables set BEFORE calling the  
INCLUDE (...)
INCLUDE(   ${QT_USE_FILE}   )


include_directories(
     ${QT_INCLUDE_DIR}
	${PGSQL_INCLUDE_DIR}
	${QT_QTXML_INCLUDE_DIR}
	${QT_QTASSISTANT_INCLUDE_DIR}
	${CMAKE_CURRENT_BINARY_DIR}
	${CMAKE_CURRENT_SOURCE_DIR}
	${CMAKE_BINARY_DIR}/bulmalib/src/
	${CMAKE_SOURCE_DIR}/bulmalib/src/
	${CMAKE_BINARY_DIR}/bulmacont/src/
	${CMAKE_SOURCE_DIR}/bulmacont/src/)

# generate rules for building source files from the resources
#QT4_WRAP_CPP(plugin_MOC_SRCS ${plugin_MOCS})

# generate rules for building source files that moc generates
QT4_WRAP_UI(plugin_UIS_H ${plugin_UIS})
QT4_WRAP_CPP(plugin_MOC_SRCS ${plugin_MOCS})
#QT4_ADD_RESOURCES(plugin_RCC_SRCS ${plugin_RCCS})

### Not NEEDED.. QT_USE_FILE will add these for you
#ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DQT_SHARED)
# build sources, moc'd sources, and rcc'd sources

add_library(${plugin} SHARED ${plugin_SRC} ${plugin_MOC_SRCS}
	${plugin_UIS_H} ${plugin_SRCS} ${plugin_MOCS})


set_target_properties( ${plugin} PROPERTIES
   SOVERSION "${BULMAGES_VERSION_MAJOR}.${BULMAGES_VERSION_MINOR}"
   VERSION "${BULMAGES_VERSION}")

## QT_LIBRARIES will include the following libraries so you do not  
have to specifically
##  list them in the target_link_libraries function
# ${QT_QTGUI_LIBRARY}
# ${QT_QTASSISTANT_LIBRARY}

target_link_libraries(${plugin} bulmalib ${QT_LIBRARIES}   $ 
{PGSQL_LIBRARIES})
install_targets(/lib/bulmacont/plugins ${plugin})


I do not see anything else that jumps out at me. If you can tell me  
where to download the PostgreSQL for os x 10.4.11 Tiger (intel) I  
might have some time to try the build.
-- 
Mike Jackson   Senior Research Engineer
Innovative Management & Technology Services


On Dec 12, 2007, at 9:20 AM, Leopold Palomo-Avellaneda wrote:

> A Dimecres 12 Desembre 2007 14:06, Mike Jackson va escriure:
>> I don't have Postgres SQL so I can not try your build on OS X.
>
> only need the libpq with the /usr/include/postgresql/* includes  
> files. Please,
> if you could do it I will thank you a lot.
>
>> Could
>> you post the link errors from the OS X machine? Maybe someone can be
>> of more help.
>> Generally I have few problems compiling my code on 64 bit linux and
>> OS X.
>
> Well, the cmake works, but it fails at 34% when link a shared  
> library. At
> Debian it doesn't fails. The user sent me the output that is below.
>
> Regards,
>
> Leo
>
> #######################################3
>
> Scanning dependencies of target pluginregistrodeiva
> [ 34%] Building CXX object bulmacont/plugins/pluginregistroiva/
> CMakeFiles/pluginregistrodeiva.dir/moc_ui_cobropagobase.o
> [ 34%] Building CXX object bulmacont/plugins/pluginregistroiva/
> CMakeFiles/pluginregistrodeiva.dir/moc_ui_listregistroivabase.o
> [ 34%] Building CXX object bulmacont/plugins/pluginregistroiva/
> CMakeFiles/pluginregistrodeiva.dir/moc_ui_registroivabase.o
> Linking CXX shared library libpluginregistrodeiva.dylib
> Undefined symbols:
>    "aplinteligentesview::aplinteligentesview(Empresa*, QWidget*)",
> referenced from:
>        linprevcobro::creaPago()      in linprevcobro.o
>    "aplinteligentesview::setfechaasiento(QString)", referenced from:
>        linprevcobro::creaPago()      in linprevcobro.o
>    "regivaprintview::regivaprintview(Empresa*, QWidget*)", referenced
> from:
>        ListRegistroIvaView::boton_print()       in  
> listregistroivaview.o
>    "BusquedaCuenta::BusquedaCuenta(QWidget*)", referenced from:
>        Ui_CobroPagoBase::setupUi(QWidget*)      in cobropagoview.o
>        Ui_RegistroIvaBase::setupUi(QWidget*)      in registroivaview.o
>    "aplinteligentesview::inicializa(int)", referenced from:
>        linprevcobro::creaPago()      in linprevcobro.o
>    "FichaBc::FichaBc(Empresa*, QWidget*, QFlags<Qt::WindowType>)",
> referenced from:
>        RegistroIva::RegistroIva(Empresa*, QWidget*)in registroiva.o
>    "aplinteligentesview::setvalores(QString, QString)", referenced  
> from:
>        linprevcobro::creaPago()      in linprevcobro.o
>        linprevcobro::creaPago()      in linprevcobro.o
>        linprevcobro::creaPago()      in linprevcobro.o
>        linprevcobro::creaPago()      in linprevcobro.o
>    "Asiento1View::muestraasiento(int)", referenced from:
>        ListLinPrevCobroView::contextMenu(int, int, QPoint const&)in
> listlinprevcobroview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_trataMenu(QAction*)
> in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_trataMenu(QAction*)
> in listregistroivaview.o
>    "Bulmacont::empresaactual()", referenced from:
>        myRegIVA::elslot()     in pluginregistroiva.o
>        myRegIVA::elslot()     in pluginregistroiva.o
>        myRegIVA::elslot1()     in pluginregistroiva.o
>        myRegIVA::elslot1()     in pluginregistroiva.o
>    "Empresa::numdigitosempresa()", referenced from:
>        linprevcobro::setcodigocuenta(QString)       in linprevcobro.o
>        linprevcobro::setcodigoctacliente(QString)       in
> linprevcobro.o
>    "FichaBc::qt_metacall(QMetaObject::Call, int, void**)", referenced
> from:
>        vtable for RegistroIvain registroiva.o
>        RegistroIvaView::qt_metacall(QMetaObject::Call, int, void**)in
> moc_registroivaview.o
>    "Asiento1::companyact()", referenced from:
>        _Asiento1_guardaAsiento1_post in pluginregistroiva.o
>    "FichaBc::empresaBase()", referenced from:
>        vtable for RegistroIvain registroiva.o
>        RegistroIvaView::RegistroIvaView(Empresa*, QWidget*)in
> registroivaview.o
>        vtable for RegistroIvaViewin moc_registroivaview.o
>    "SubForm2Bc::SubForm2Bc(QWidget*)", referenced from:
>        Ui_CobroPagoBase::setupUi(QWidget*)      in cobropagoview.o
>        Ui_ListRegistroIvaBase::setupUi(QWidget*)      in
> listregistroivaview.o
>        Ui_ListRegistroIvaBase::setupUi(QWidget*)      in
> listregistroivaview.o
>        Ui_ListRegistroIvaBase::setupUi(QWidget*)      in
> listregistroivaview.o
>        Ui_ListRegistroIvaBase::setupUi(QWidget*)      in
> listregistroivaview.o
>        Ui_RegistroIvaBase::setupUi(QWidget*)      in registroivaview.o
>        Ui_RegistroIvaBase::setupUi(QWidget*)      in registroivaview.o
>    "FichaBc::staticMetaObject", referenced from:
>        __ZN7FichaBc16staticMetaObjectE$non_lazy_ptr in registroiva.o
>        RegistroIvaView::staticMetaObject        in  
> moc_registroivaview.o
>    "FichaBc::~FichaBc()", referenced from:
>        RegistroIva::~RegistroIva()in registroiva.o
>        RegistroIva::~RegistroIva()in registroiva.o
>        RegistroIva::~RegistroIva()in registroiva.o
>        RegistroIva::~RegistroIva()in registroiva.o
>        RegistroIva::RegistroIva(Empresa*, QWidget*)in registroiva.o
>    "Asiento1::idasiento()", referenced from:
>        linprevcobro::creaPago()      in linprevcobro.o
>        linprevcobro::creaPago()      in linprevcobro.o
>    "FichaBc::qt_metacast(char const*)", referenced from:
>        vtable for RegistroIvain registroiva.o
>        RegistroIvaView::qt_metacast(char const*)in  
> moc_registroivaview.o
>    "non-virtual thunk to FichaBc::empresaBase()", referenced from:
>        vtable for RegistroIvain registroiva.o
>        vtable for RegistroIvaViewin moc_registroivaview.o
>    "FichaBc::metaObject() const", referenced from:
>        vtable for RegistroIvain registroiva.o
>    "aplinteligentesview::muestraplantilla(QString)", referenced from:
>        linprevcobro::creaPago()      in linprevcobro.o
>    "aplinteligentesview::setmodo(int)", referenced from:
>        linprevcobro::creaPago()      in linprevcobro.o
>    "regivaprintview::inicializa1(QString, QString)", referenced from:
>        ListRegistroIvaView::boton_print()       in  
> listregistroivaview.o
>    "typeinfo for FichaBc", referenced from:
>        typeinfo for RegistroIvain registroiva.o
>    "Empresa::bdempresa()", referenced from:
>        linprevcobro::linprevcobro(Empresa*)in linprevcobro.o
>        linprevcobro::linprevcobro(Empresa*, QString)in linprevcobro.o
>        linprevcobro::linprevcobro(Empresa*, QString, QString, QString,
> QString, QString, QString, QString, QString, QString, QString,
> QString, QString, QString, QString, QString, QString)in linprevcobro.o
>    "Empresa::intapuntsempresa()", referenced from:
>        linprevcobro::creaPago()      in linprevcobro.o
>        linprevcobro::creaPago()      in linprevcobro.o
>        ListLinPrevCobroView::contextMenu(int, int, QPoint const&)in
> listlinprevcobroview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_cellDoubleClicked(int,
> int)in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_trataMenu(QAction*)
> in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_trataMenu(QAction*)
> in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablasoportado_trataMenu(QAction*)
> in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_trataMenu(QAction*)
> in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_trataMenu(QAction*)
> in listregistroivaview.o
>
> ListRegistroIvaView::on_mui_tablarepercutido_trataMenu(QAction*)
> in listregistroivaview.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [bulmacont/plugins/pluginregistroiva/
> libpluginregistrodeiva.0.11.0.dylib] Error 1
> make[1]: *** [bulmacont/plugins/pluginregistroiva/CMakeFiles/
> pluginregistrodeiva.dir/all] Error 2
> make: *** [all] Error 2
>
>



More information about the CMake mailing list