Tuesday, July 5, 2011

把在Linux中使用GCC开发的程序XCODE+IVF中编译需要更改的地方

建立sublib的库文件libsublib.a:
  1. 根据sublib文件夹中的Makefile中提到的.o文件,加入这些文件到此IVF的工程中;
  2. 在Project-Get Info-Build-Preprocessrr中,把.inc所在的目录加入到Additional Include Directories;
  3. 在IVF中循环语句使用的标号,比如rhead1.f中的8,只能用于循环,不能用于其它语句的goto跳转,所以这里goto跳转的标号需要与循环的标号独立;
建立phasedit的库文件libphase.a:
  1. 根据sublib文件夹中的Makefile中提到的.o文件,加入这些文件到此IVF的工程中;
  2. 在Project-Get Info-Build-Preprocessrr中,把.inc所在的目录加入到Additional Include Directories;
  3. 再Common里面声明的变量,在子程序中又重新以Local形式声明了,重复声明,应该把Local中的声明去掉,hasL1;
  4. 在read和write时,格式要加unit=,fmt=这两个就全加,否则就全不加,一个加一个不加会导致无法通过编译
  5. 在fmt=中的格式的书写形式不宜用//连接两个字符串的形式。
建立主程序prepmain:
  1. 根据prep文件夹中的Makefile中提到的.o文件,加入这些文件到此IVF的工程中;
  2. 在Project-Get Info-Build-Preprocessrr中,把.inc所在的目录加入到Additional Include Directories;
  3. 内部函数MOD的自变量需要同种类型的,比如都是real或者都是integer,如果是不同类型,在IVF中不能自动转化,需要更改代码强制转化,比如这里需要把intrv强制转换成实型。
  4. 需要把.a文件加入到工程中,在Search Paths中的Library Search Paths中,加入.a文件所在的路径。
  5. 需要在主程序中加一个语句:ists=0。因为在unix,linux,以及windows下的系统,当整数初始化的时候有的默认的是0,有的默认的是32767,所以在运行文件的时候会报错。
运行程序:
  1. 注意路径名不要超过64个字符,所以不要放在太多字符的路径名中。

No comments:

Post a Comment