Il motivo e'abbastanza semplice
non linka perche setColorMode e'dichiarata nel .h ma non definita in
nessun cpp/obj di quelli usati per costruire la dll.
Al contrario showLog e defininta nel ;h accanto alla sua dichiarazione.
In teoria per farla compilare basterebbe aggiungere glarea.cpp ai file
del pro di dummy, ma questo provoca una reazione a catena di inclusione
di praticamente tutti i file di meshlab...
La soluzione non e' banale
una patch veloce e' quella di limitare il colloquio tra le classi alla
modifica di sole variabili di stato fatta tramite funzioni di
interfaccia definite inline accanto alla dichiarazione.
ma questo non funge per tutto...
La soluzione giusta sarebbe quella di fare una bella lib in cui si
chiarisce bene cosa esportare e cosa non esportare...
Per questa release andate avanti a workaround, cercando di non aver
troppo bisogno di troppe funz interne del meshlab
e mercoledi (apropos, si recupera stessa ora stessa aula) si sa di che
parlare.
saluti
p.
Mario Latronico wrote:
>> Questo e' lecito e compila:
>>
>> void DummyPlugin::Render(QAction *a, MeshModel &m, RenderMode &rm, GLArea
>>*gla)
>> {
>> gla->showLog(true);
>> }
>>
>> Mentre questo:
>>
>> void DummyPlugin::Render(QAction *a, MeshModel &m, RenderMode &rm, GLArea
>>*gla)
>> {
>> gla->setColorMode(GLW::CMxxxx);
>> }
>>
>> ci regala un bell'errore di link.....
>>
>>
>
>in realta' non mi funziona nessuno dei due ... l'errore per entrambi e' questo:
>
>make[1]: Entering directory `/home/mario/src/meshlab/src/meshlabplugins/dummy'
>g++-3.3 -c -pipe -O2 -w -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_PLUGIN
>-DQT_CORE_LIB -DQT_GUI_LIB -DQT_SHARED
>-I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtGui
>-I/usr/include/qt4/QtCore -I/usr/include/qt4 -I../.. -I../../../../sf
>-I../../../../code/lib/glew/include -Irelease -I. -o release/dummy.o
>dummy.cpp
>dummy.cpp: In member function `virtual void DummyPlugin::Render(QAction*,
> MeshModel&, RenderMode&, GLArea*)':
>dummy.cpp:27: error: `showLog' undeclared (first use this function)
>dummy.cpp:27: error: (Each undeclared identifier is reported only once for each
> function it appears in.)
>make[1]: *** [release/dummy.o] Error 1
>make[1]: Target `first' not remade because of errors.
>make[1]: Leaving directory `/home/mario/src/meshlab/src/meshlabplugins/dummy'
>make: *** [release] Error 2
>make: Target `first' not remade because of errors.
>
>
>-------------------------------------------------------
>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>for problems? Stop! Download the new AJAX search engine that makes
>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
>_______________________________________________
>Meshlab-devel mailing list
>Mes...@li...
>https://lists.sourceforge.net/lists/listinfo/meshlab-devel
>
>
>
--
Paolo Cignoni http://vcg.isti.cnr.it/~cignoni
ISTI - CNR
Via Moruzzi 1,
56124 Pisa
ITALY
|