[CMake] shared libraries .lib .dll

Ingrid Kemgoum ingrid.kemgoum at gmail.com
Tue Jun 10 10:28:36 EDT 2008


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 <martin.apel at simpack.de>:

> 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
> --
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20080610/3075075a/attachment.htm>


More information about the CMake mailing list