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
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to