[CMake] Problem with GNU compilers - difference between "Windows" and "MinGW"

Arjen Markus arjen.markus at deltares.nl
Mon Sep 20 07:48:38 EDT 2010


Hello,

Alan Irwin and me ran into a rather peculiar problem concerning the
use of the GNU compiler suite on Windows. Here is the set-up:
- Alan's free_eos project uses the LAPACK and BLAS libraries.
- I tested his build system under Windows and to do that I first
   built BLAS and LAPACK from sources.
- To my surprise the free_eos project's build system failed to
   find the libblas.a and liblapack.a files that I had generated.
- I used the "MinGW Makefiles" generator in both cases.

Here is what I conclude from an analysis of what is going on:
- With the "MinGW Makefiles" generator, the GNU compilers are
   recognised first - which is what I wanted.
- I use the GNU compilers in an environment that does not state
   it is "MinGW" and so, find_library uses the Windows convention
   for naming libraries. So with in free_eos, CMake expects the
   files blas.lib and lapack.lib.
- The CMake configuration for the GNU compilers - ignoring the specifics
   of Windows - always uses the Linux convention for library names.
   So it produces libblas.a and liblapack.a.

I may be mistaken in the details, but this is definitely what it boils
down to. Shouldn't the "MinGW Makefiles" generator take care of these
two naming conventions?

Regards,

Arjen

 

DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited.
The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail.






More information about the CMake mailing list