[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