Werner Smekal a écrit :
Hi,

maybe you forgot to export symbols?

http://www.cmake.org/Wiki/BuildingWinDLL

Dear Werner,

Thank you, I did search the cmake Wiki for something like that, but I
did not manage to find this page. I think we are exporting/importing our
symbols in most of the case, but I did not know that visual will simply
not build any dll if there is no exported symbol.

This lead me to another question:
In the wiki page, it is suggested to do the following:

#if defined (_WIN32)
  #if defined(MyLibrary_EXPORTS)
    #define  MYLIB_EXPORT __declspec(dllexport)
  #else
    #define  MYLIB_EXPORT __declspec(dllimport)
  #endif /* MyLibrary_EXPORTS */
#else /* defined (_WIN32) */
 #define MYLIB_EXPORT
#endif

But in this piece of code, the case were we build static libraries under
windows is not handled. This means that we will import/export symbols
even if we build static libraries, and this seems to break the
compilation, leading to "undefine reference to declspec(dllimport) xxx"
when trying to link against the library. I did look at the export
sections of other libraries and they seem to handle this static case by
removing the __declspec(dllexport)/__declspec(dllimport). What is the
right thing to do here ?

Thank you for your reply,
Best regards,

Julien
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Julien MICHEL - Ingénieur d'études - Traitement d'images
CS Systèmes d'Information - Division ESPACE
Département Information Géographique & Image
Téléphone : +33 561 17 64 27
Email : [EMAIL PROTECTED]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to