返回首页   进站必读

2.6 gcc 的基本参数


2.6 gcc 的基本参数

2.6.1 gcc -o

该参数用来指定生成的可执行文件的名字,输入gcc hello.c -o hello
这时生成的可执行文件就不是a.out了而是hello,输入./hello即可运行该程序。

$ls
hello.c
$gcc hello.c -o hello
$ls
hello.c hello
$./hello
hello world!

2.6.2 gcc -g

该参数用来生成可以用gdb调试的可执行文件。

$ls
hello.c
$gcc hello.c -g -o hello
$ls
hello.c hello
$gdb ./hello
...
(gdb)

2.6.3 gcc -l

键入下面代码:

    #include <stdio.h>
    #include <math.h>

    int main(int argc, char *argv[])
    {
            float f = 9.0;

            printf("%.2f", sqrt(f));
    }

在编译上面的代码时会出现如下情况:

$gcc math.c -o math
/tmp/ccN9fsbV.o: In function `main 
test.c:(.text+0x2d): undefined reference to `sqrt' 
collect2: ld returned 1 exit status
这是gcc在编译的时候没有默认连接数学库(libm),像这样输入:
$gcc math.c -o math -lm
$./math
3.00
在l的后边加上m,告诉编译器要连接数学库。