
Hi, basically there are two problems. The OpenFlipper make system is based on cmake. Currently it assumes, that there is only one plugin per Plugin-x folder. So only one build target is added for each folder, resulting in one plugin library that is generated (The makefile code for this is in OpenFlipper/cmake/plugin.cmake). The second problem is that qt creates the interfaces and runtime plugin linking parts via the Q_EXPORT_PLUGIN2 macros which generate fo example the _qt_plugin_instance functions, which are only allowed ones per created binary (in this case the plugin.lib file). As all of your files are compiled into one plugin, you will get symbol redefinitions which result in your linker errors. The only way to solve this would be to modify the cmake files of OpenFlipper. One possibility would be to introduce some kind of plugin collection. Which would than require that you create one Folder at the top level directory and for each of the sub plugins an additional folder below that: PluginCollection-BuisenessA -> Plugin-A -> Plugin-B -> Plugin-C Currently that is not implemented yet, but it should not be very complicated, as it would only require some changes to: OpenFlipper/cmake/common.cmake and there especially the "of_add_plugins" function such that it recognizes Plugin collections. Best, Jan Möbius On 18.10.2012 15:44, xyliu80@gmail.com wrote:
Dear Jan Möbius, Thanks for your helpful answers. Concerning to topic: About the plugin desing : one host and other slaved.
We still have our different view. Firstly, We do not want to put the host class and the slave classes into different folders, instead, we prefer to keeping them together in the same project, because they focus on the same 'business'. We split them because we want to make the 'business' looks clear; We make them inherit by LogInterface, RPCInterface and others because we need to call external functions, like log, rpc, within them.
Secondly, let me state the problems with our current design. For example, we have a subclass named :GeometricSignature.cpp. We put Q_EXPORT_PLUGIN2( lmgcgeometricsignature , LMGCGeometricSignature); at the bottom of it. however, we got the following building eorrs 2>Linking... 2>LMGCPlugin.obj : error LNK2005: _qt_plugin_query_verification_data already defined in GeometricSignature.obj 2>LMGCPlugin.obj : error LNK2005: _qt_plugin_instance already defined in GeometricSignature.obj
if we remvoved Q_EXPORT_PLUGIN2( lmgcgeometricsignature , LMGCGeometricSignature); out of it, Building is fine, but calls to those external functions do not work; that is say, no errors, no feedbacks; From the log window, we can see only the main class is loaded; other subclasses do not loaded as plugins even they have the same inheritance as the main class.
We are looking forward to hearing suggestions from you. Best Regards, ------------------------------------------------------------------------ *Xianyong Liu Shanghai JiaoTong University* *Office: +86 021 34204586 E-mail: **xyliu80@gmail.com* <mailto:xyliu80@gmail.com>
*Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China*
*From:* openflipper-request <mailto:openflipper-request@lists.rwth-aachen.de> *Date:* 2012-10-18 18:00 *To:* openflipper <mailto:openflipper@lists.rwth-aachen.de> *Subject:* Openflipper Digest, Vol 32, Issue 2 Send Openflipper mailing list submissions to openflipper@lists.rwth-aachen.de
To subscribe or unsubscribe via the World Wide Web, visit http://mailman.rwth-aachen.de/mailman/listinfo/openflipper or, via email, send a message with subject or body 'help' to openflipper-request@lists.rwth-aachen.de
You can reach the person managing the list at openflipper-owner@lists.rwth-aachen.de
When replying, please edit your Subject line so it is more specific than "Re: Contents of Openflipper digest..."
Today's Topics:
1. About Gaussian curvature computation (xyliu80@gmail.com) 2. About the plugin desing : one host and other slaved. (xyliu80@gmail.com) 3. Re: About the plugin desing : one host and other slaved. (Jan Möbius) 4. Re: About Gaussian curvature computation (Jan Möbius)
----------------------------------------------------------------------
Message: 1 Date: Wed, 17 Oct 2012 23:01:20 +0800 From: "xyliu80@gmail.com" <xyliu80@gmail.com> To: openflipper <openflipper@lists.rwth-aachen.de> Subject: [Openflipper] About Gaussian curvature computation Message-ID: <201210172301158434251@gmail.com> Content-Type: text/plain; charset="gb2312"
Dear Openflipper developer,
We saw that, in openflipper, the initial Guassian curvature for each vetex is : double gauss_curv( 2.0*M_PI); However, in lots of papers, they set the initial value to M_PI, if it is a boundary vertex.
Could you please explain such difference? Thank you for your great work in graphics community!
Best Regards,
Xianyong Liu Shanghai JiaoTong University Office: +86 021 34204586 E-mail: xyliu80@gmail.com Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China