hi, i've taken your advice on the __declspec stuff and test it on a hello world project. i do have a .lib now but with a warning " hello.cxx
..\..\CMakeExample\Hello\hello.cxx(5) : warning C4273: 'Hello::Print' : inconsistent dll linkage h:\workspace\cmakeexample\cmakeexample\hello\hello.h(18) : see previous definition of 'Print' is that normal? anyway there is a problem: the application fail to find the .exe and the .dll though i fixed those paths in the CMakeLists.txt. what could be the problem? thanks for help Ingrid 2008/6/10 Martin Apel <[EMAIL PROTECTED]>: > Ingrid Kemgoum wrote: > >> hi and sorry to disturb >> (i'm french and my english is not that good) >> but i've seen on cmake.org <http://cmake.org> that i'm having the same >> problem as you did. >> i'm building a c++ project and from a shared library i only have the .dll >> (not the .lib) >> i dont understand explanations on cmake so could you please give me some? >> thanks in advance and regards >> Ingrid >> > Hi Ingrid, > > on Windows you have to tell the compiler/linker, which symbols should be > exported from a DLL. There is a Microsoft extension to C++ > using a declspec(export) and declspec(import) prefix for DLL functions. > There's another possibility to use a so-called .def-file to tell the > compiler, > which symbols to export. If you have not told the compiler using one of the > two ways, no symbols are exported and thus no .lib file generated. > Please google for the explanation of the declspec keyword, it is somewhat > beyond my available time to explain it in detail. What I did looks roughly > as follows: > > #ifdef WIN32 > #ifdef Base_EXPORTS > #define SPCK_BASE_EXPORT __declspec(dllexport) > #else > #define SPCK_BASE_EXPORT __declspec(dllimport) > #endif > #else > #define SPCK_BASE_EXPORT > #endif > > class SPCK_BASE_EXPORT Transformer > { > ... > }; > > Hope this helps, > > Martin > -- >
_______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
