Hi Jim,

Jim Dishaw wrote:
> In my attempt to get Fortran built correctly using the Intel compiler I
> noticed a problem with the compiler flag string.
> 
> I used the following cmake command
[...]
> Notice the presence of the /MD and /MDd flags in the release and debug
> variants.  This sets the default library to MSVCRT.DLL and MSVCRTD.DLL,
> which will cause problems if someone was expecting a static library
> version, which is what I thought I was getting with
> BUILD_SHARED_LIBS=OFF.

I think it is possible to replace the /MD flag with /MT (static crt) or 
/Zl (no link) in the corresponding variables, this should be no problem.

 > For dyanmic libraries I have had problems using the /Zl
> option.  From what I understand, all the parts that make up the DLL need
> to have a library specified because the DLL needs to be internally
> consistent.  For example, you can create a DLL that consists of static
> linked parts (which makes one DLL that is complete) or you can create a
> DLL that uses the runtime DLL's (e.g. MSVCRT.DLL).  I've used the static
> linked version to create DLL's that work.

For dynamic libraries I don't think you can use the /Zl option, since as 
you write, there can't be unreferenced dependencies in a dll.
> 
> Another option would be to have a cmake parameter where the user
> specifies which runtime library to use (maybe there is one already).

Other libraries (like wxWidgets) always point out, that you have to 
compile your application with the same option as was used for the 
library. We could allow the user to change the runtime library (e.g. 
-DSTATIC_CRT=ON), but I'm not sure if this is a good idea for the plplot 
dll (i.e. don't allow it in that case). Apart from that the c-runtime 
library V6 and V7 are really on every Windows computer, you should 
virtually never run into problems here. Version 8 is a problem, Vista 
will have it by default, but not WinXP an earlier - that's the reason 
why you practically can't use Visual C++ 2005 (free version) for 
deploying a application (since you are somehow not allowed to include 
the runtime library in your application and let the user install it by 
herself is a PITA).
> 
Werner

-- 
Dipl. Ing. Werner Smekal
Institut fuer Allgemeine Physik
Technische Universitaet Wien
Wiedner Hauptstr 8-10
A-1040 Wien
Austria

email: [EMAIL PROTECTED]
web:   http://www.iap.tuwien.ac.at/~smekal
phone: +43-(0)1-58801-13463 (office)
        +43-(0)1-58801-13469 (laboratory)
fax:   +43-(0)1-58801-13499

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to