I have downloaded the GSL and I expected it can be used on the win32 platform.But I can't find the libgsl.lib and libgslcblas.lib in the downloaded package. There are only .a and .def files. What should I do if I want to use the GSL on the win32 platform?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You don't say which compiler suite you expect to be able to use this with. You are using a package which expects to be compiled and linked using a GNU compiler tool chain, such as the MinGW port of GCC; see www.mingw.org.
MinGW's gcc well understands that libfoo.a' andfoo.lib' are one and the same, and will quite happily use libraries named according to either convention; if you are using a compiler suite that doesn't understand this, then you have to rename the libraries for yourself; (and do note that renaming libfoo.a' aslibfoo.lib' is wrong, so you should never see either of the two library names you mention).
Another caveat, of which to be aware; if libfoo.a' containsC++' objects, not declared as
`extern "C"', then they will be ABI incompatible with any compiler, other than the one with which they were originally compiled. In this case, then you either have to rebuild the libraries yourself, from source, using your own compiler, or you have to user the same compiler as the original packager, (which, AFAIK for GnuWin32 packages, is MinGW).
HTH,
Keith.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have downloaded the GSL and I expected it can be used on the win32 platform.But I can't find the libgsl.lib and libgslcblas.lib in the downloaded package. There are only .a and .def files. What should I do if I want to use the GSL on the win32 platform?
start the "Visual Studio 2008 command lines"
goto the gsl lib directory, and type:
lib /machine:i386 /def:libgsl.def
lib /machine:i386 /def:libgslcblas.def
you'll get the lib files;
gook luck.
You don't say which compiler suite you expect to be able to use this with. You are using a package which expects to be compiled and linked using a GNU compiler tool chain, such as the MinGW port of GCC; see www.mingw.org.
MinGW's gcc well understands that
libfoo.a' andfoo.lib' are one and the same, and will quite happily use libraries named according to either convention; if you are using a compiler suite that doesn't understand this, then you have to rename the libraries for yourself; (and do note that renaminglibfoo.a' aslibfoo.lib' is wrong, so you should never see either of the two library names you mention).Another caveat, of which to be aware; if
libfoo.a' containsC++' objects, not declared as`extern "C"', then they will be ABI incompatible with any compiler, other than the one with which they were originally compiled. In this case, then you either have to rebuild the libraries yourself, from source, using your own compiler, or you have to user the same compiler as the original packager, (which, AFAIK for GnuWin32 packages, is MinGW).
HTH,
Keith.