[CMake] My dammed problem with OSX and Qt
Leopold Palomo-Avellaneda
leo at alaxarxa.net
Wed Jan 16 13:05:04 EST 2008
A Dimecres 16 Gener 2008, Bill Hoffman va escriure:
> Leopold Palomo-Avellaneda wrote:
> > Hi,
> >
> > I'm one of the developers of a free software project [1]. I have made the
> > transition from qmake to cmake. The project has several targets (one lib
> > and 3 exes, and a lot of plugins).
> >
> > I can compile the whole project in a GNU/Linux box with:
> >
> > mkdir build
> > cd build
> > cmake ../
> > make
> >
> > without any problem. Howeber, when I try to compile the project in OSX, I
> > can compile the libs, one exec but it fails with the first plugin. I have
> > isolated the problem in this:
> >
> > Linking CXX shared library libpluginregistrodeiva.dylib
> > Undefined symbols:
> >
> > I don't have any special consideration with the OSX platform (CMake is
> > wonderfull, isn't it?) but it fails in this. It seems that the compiler,
> > when link the plugin try to find anything that doesn't find (in linux it
> > finds...)
> >
> > So, please, have I to make some special consideration about qt, plugins
> > in MacOSX?
> >
> > Have I to put some directive, or property when I compile a plugin in OSX?
>
> It might be helpful to know what the undefined symbols are...
the system is:
$ uic -v
Qt User Interface Compiler version 4.3.3
$ moc -v
Qt Meta Object Compiler version 59 (Qt 4.3.3)
$ g++ -v
Using built-in specs.
Target: i686-apple-darwin9
Configured
with: /var/tmp/gcc/gcc-5465~16/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg]
[^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --with-arch=apple --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5465)
and the error is in the plugin (or whatever plugin)
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
Regards,
Leo
More information about the CMake
mailing list