###1.基本思路
利用f2c 將fortran源碼轉換爲C,再利用QCC編譯。
###2.f2c
<1>f2c編譯後文件需要鏈接libf2c.a
因此需要在QNX下完成f2c編譯
大致步驟
setenv INSTALL /usr/local
curl "http://netlib.sandia.gov/cgi-bin/netlib/netlibfiles.tar?filename=netlib/f2c" -o "f2c.tar"
tar -xvf f2c.tar
gunzip -rf f2c/*
cd f2c
mkdir libf2c
mv libf2c.zip libf2c
cd libf2c
unzip libf2c.zip
cp makefile.u Makefile
make
cp f2c.h $INSTALL/include
cp libf2c.a $INSTALL/lib
其中以上中,需把makefile中的CC 和LD改成QNX編譯器與鏈接器路徑。
重點是拿到QNX 版本的 libf2c.a 與 f2c.h
<2>翻譯fortran
在包含fortran源碼路徑下:
$ f2c -P -A -a -c -r8 *.f
$ f2c -PAacr8 *.f
以上兩種路徑等價,此處的f2c直接使用ununtu版本的即可。其中生成的.P文件即爲頭文件。可以改爲.h。
<3>編譯計算庫
此時按照通常QNX靜態庫的編譯方法,把<2>中生成的源碼加入庫中,並鏈接 libf2c.a 與 f2c.h。