Unix中常用的编译系统及其简单的使用

常用的编译器:

  • C编译器: cc, gcc (GNU C) 等.
  • Fortran 编译器: f77, fc, g77 (GNU Fortran), f90 (Fortran 90) 等.

可用man查看使用手册, 如: man cc, man f77等等.

命令行形式:

$cc  [options]  files  [options]
$f77  [options]  files  [options]

命令行选项:

  • c: 只编译, 不链接, 即只生成.o文件.

  • o filename: 指定输出文件名, 缺省为*.o, a.out等.

  • Ipath: 指定(增加)包含文件(如*.h)的搜索目录.

  • Lpath: 指定(增加)库文件的搜索目录.
  • lname: 与库文件libname.a(.so)链接.
  • 优化开关: -O, -O1, -O2, -O3, 等等.

例:

f77  -O2  -o  prog  file1.f  file2.c file3.o  file4.a


f77  -c  file.f


f77  -o  out  file.o

f77  -c  -I/usr/local/mpi/include file.f


f77  -o  prog  -L/usr/local/mpi/lib     file.o  -lmpi 
(等价于:f77  -o  prog  file.o  /usr/local/mpi/lib/libmpi.a)

两个调试工具:

  • GDB GDB是GNU开源组织发布的强大的UNIX下的程序调试工具。

一般来 说,GDB主要帮忙你完成下面四个方面的功能: 启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
可让被调试的程序在你所指定的调置的断点处停住。 当程序被停住时,可以检查此时你的程序中所发生的事。 动态的改变你程序的执行环境。

  • vlagrind

Valgrind是在linux系统下开发应用程序时用于调试内存问题的工具。

valgrind  --tool=memcheck 
 --leak-check=yes  \
 --show-reachable=yes   \
 --run-libc-freeres=yes \ ./yourprogram

附一个小程序以供大家练习:

#include <stdio.h>
#include <stdlib.h>
void f();
int main(int argc,char* argv[])
{
    int input =0;
        int i;
    printf("Input an integer:");
    scanf("%d", &input);
    printf("The integer you input is %d\n", input);
        for(i=0;i<input;i++)
          f();
    return 0;
}

void f()
{
        int *a;
        a=(int*)malloc(10*sizeof(*a));
        free(a);
        return;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆嵩

有打赏才有动力,你懂的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值