MinGWで使うGSL (Windowsでのフリーソフトによる数値計算環境の構築)

C言語の様々な規格とWindowsの処理系

C言語の様々な規格


 CC89( ANSI C)1989  


C95  

 

C99  

 
 
C++//  


C95C89C99C89便C89  (C89CC89)  

WindowsCC99


WindowsC  


(一)Microsoft Visual C++  
(二)Embarcadero Turbo C++ Explorer  
(三)Intel C++ Compiler  
(四)GCC (GNU Compiler Collection, http://gcc.gnu.org/)  

1.2.WindowsC++  C++CC99 C  

3.C/C++  LinuxWindows  

4.OSUnix  C/C++  

WindowsGCC


WindowsGCC使  


(一)WindowsGNU Octave  
(二)GCCWindowsMinGW(Minimalist GNU for Windows)  
(三)WindowsUnixcygwin  
(四)coLinux, andLinuxWindowsLinux  

Unix  3, 4UnixWindows使使  
1.WindowsGNU OctaveMinGWGSL, LAPACKOctave-3.6.1octaveforge pkgoctave-gcc-setup.batGCCGSLLAPACK使  

 2. Octave  octave-gcc-setup.bat 1.   GSL   


 


 
 
 
 
etc.  

 


(一)IMSL  
(二)LAPACK  
(三)GSL  

1.IMSLVisual Numerics使Fortran    

2.LAPACKFortranhttp://www.netlib.org/lapack/  Intel使LAPACK  

3.GSLGNU Scientific Library(acronym)Chttp://www.gnu.org/software/gsl/    http://www.cbrc.jp/~tominaga/translations/gsl/  

MinGWGSL

 

MinGWMSYS



(一)http://www.mingw.org/  Downloads  Installer mingw-get-inst "MinGW Compiler Suite"  "MinGW Developer Toolkit" 
(二) "Path"  "C:\MinGW\bin"   

GSL



(一)http://www.gnu.org/software/gsl/GSL C:\MinGW\msys\1.0\home\user(userWindows)  
(二)MinGW shell(GSL  gsl-1.15.tar.gz )  
          tar zxvf gsl-1.15.tar.gz
          cd gsl-1.15
          ./configure --disable-shared
          make
          make install
        

(三)C:\MinGW\msys\1.0\local\includegslC:\MinGW\include  
(四)C:\MinGW\msys\1.0\local\liblibgsl.a, libgslcblas.a2C:\MinGW\lib  


GSL  


(一) (gsl)
(二)TeraPad使Windows便test_gsl.c  
          #include <stdio.h>
          #include <gsl/gsl_sf_exp.h>

          int main(void)
          {
              printf("e = %20.12e\n", gsl_sf_exp(1.0));
              return 0;
          }
        

(三)  
          cd "My Documents\gsl"
        
 
          gcc -Wall test_gsl.c -lgsl -lgslcblas
        
-Wallgcc使  2-lgsl, -lgslcblasGSL    
a
 gcc"-o"a.exe    
          e = 2.718281828459e+000
        
 

Linux


LinuxMinGW  

glibcWindows使


LinuxWindows  

printfLinux2MinGW3


Linux1MinGW  

MinGW"-lm"


 

SigFPE


MinGWGNU/LinuxInfNaNtrapfpe.c  

Windows + MinGWInfNaN  


(一)trapfpe-windows.c  
          #include <float.h>

          static void __attribute__ ((constructor))
          trapfpe ()
          {
              _controlfp( ~(_EM_INVALID|_EM_ZERODIVIDE|_EM_OVERFLOW), _MCW_EM );
          }
        

(二)trapfpe-windows.clibtrapfpe.a  ( octave-gcc-setup.bat  Octave "C:\MinGW\include" "%octave_path%\mingw32\include" )  
          > gcc -c -isystem C:\MinGW\include trapfpe.c -o libtrapfpe.a
        

(三)libtrapfpe.aC:\MinGW\lib  ( octave-gcc-setup.bat  Octave Octave "mingw32\lib" )

(四)NaNInf(hoge.c)"-g""-ltrapfpe"libtrapfpe.a  
          > gcc -Wall -g hoge.c -ltrapfpe
        

(五)a.exegdb  
          > gdb a.exe
        

(六)(gdb)  run gdb  (run )  
(七)InfNaNSigFPE
 (libm)(gdb) up  

gdb("print ")便  gdb調  

gdb"quit"  "quit"  
      The program is running.  Exit anyway? (y or n)
    

"y"gdb  

2MBLinux


 

スタックサイズが足りない場合のエラーメッセージ

 
      gcc -Wl,--stack,10485760 hoge.c
    

10485760Byte=10MB18164  km  

 make使  makefile  MinGWmakefileLinuxmakefile  


tago.exe:(.exe)
Windows
makemingw32-make  

makefile使1.exe  

Last update: 2012.3.19  

[]     []