certi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [certi-dev] CERTI Windows build


From: Jan-Patrick Osterloh
Subject: Re: [certi-dev] CERTI Windows build
Date: Thu, 29 Sep 2011 14:41:38 +0200
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20110902 Thunderbird/6.0.2

Hi all,

--- Quoted from Eric Noulard (Date: 28.09.2011 23:10): ---
> It appear that on linux you cannot link a shared library with a static one...
>
> so that:
> TARGET_LINK_LIBRARIES(FedTime1516 VarData1516)
>
> makes the link of FedTime1516.
>
> On can keep the VarData1516 but it has to be shared on Linux.
>
> Now since current CVS HEAD works well on Linux
> may be we can just conditionnally build the static VarData1516
> static lib, i.e. in the CMakeLists.txt
>
> if(WIN32)
>   build static VarData1516
> endif()
>
> if(WIN32)
>    TARGET_LINK_LIBRARIES(FedTime1516 VarData1516)
> else()
>    TARGET_LINK_LIBRARIES(FedTime1516)
> endif()

Ok, should I do these updates? I had a small problem when I try to run
make install, because make complained on the ".def" file. Do we (JPL)
need this on windows? If not I will remove this from the CMakeLists.txt

>
>>> The
>>>     circular dependencies is present in both Pitch and Mak
>>>     implementation...
>>  How are they solving the problem? I couldn't see how to do it in an
>> other way, because as I read in the cmake documentation, circular
>> dependencies work only, when both libraries are static libraries, but
>> this is probably not what we wan't? Ok, I'm not that big expert with
>> cmake, etc., maybe you have a better solution.
> We are using CMake because it's convenient for portability but
> nothing tell us that those who manage to build circularly dependent libs
> do use CMake ;-]
>
> Not doable with CMake does not mean not do-able.
> As far as I understand the issue is that Windows linker requires to have
> the so-called "A.LIB" library for building the B.DLL which depends on A.DLL

Well, I think this is a VisualStudio thing, because I never used such
LIB files up to now.
>
> B.DLL --> A.DLL is a runtime dependency
> B.DLL --> A.LIB is a build time dependency
>
> since A.LIB is usually generated during the compilation of A.DLL
> A.DLL --> B.LIB generates the trouble.
>
> On unix you don't have any build time dep' beside the header so there
> is no trouble.
>
> On windows you may (not with plain CMake) find a way to create your
> missing A.LIB (or B.LIB) before compilin A.DLL (or B.DLL)
> this is the subject of these articles:
>
> http://www.eggheadcafe.com/software/aspnet/30952908/how-to-create-a-lib-file-to-use-for-circular-dependencies.aspx
This is really ugly (creating a second project etc). I wouldn't do that.
> http://support.microsoft.com/kb/q131313/
This seems more interesting, I think there is a dlltool which can do
something like this. But in case we couldn't do it within the cmake
file, I think this is also not such a nice idea.


> however I will be pragmatic for this, if the STATIC lib is the way to
> go on Windows go ahead
> with this particular case in CMakeLists.txt we'll live with it.
I think the same, if it works this way, let's go ahead. We all can spend
our time on more important things I assume ;-)

JPO

-- 
Dipl. Inform. Jan-Patrick Osterloh
FuE Bereich Verkehr | R&D Division Transportation
Human Centered Design Group

OFFIS
FuE Bereich Verkehr | R&D Division Transport
Escherweg 2 - 26121 Oldenburg - Germany
Phone/Fax: +49 441 97 22-524/502
E-Mail: address@hidden
URL: http://www.offis.de


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]