文档介绍:实验四编译和调试工具的使用
班级:计本112 姓名:邵绪宝
学号:201106080226
三、操作
1、GNU C编译器
1)
编译器。gcc命令的基本用法如下:
gcc [options] [filenames]
命令行选项指定的编译过程中的具体操作
1:预处理:命令:gcc -E -o
2:编译:命令:gcc -S -o
3:汇编:命令:gcc -c -o
4:链接:命令:gcc -o hello
2) gcc常用选项
当不用任何选项编译一个程序时,gcc将建立(假定编译成功)。
选项含义:
-o FILE 指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE 没
有指定,.
例如,
# gcc
编译成功后,。
也可用-。
例如:
#gcc –o count
,而是count。
-c GCC 仅把源代码编译为目标代码。 的
扩展名。
-E 对文件进行预处理
-S 对文件进行编译,生成汇编代码。
-O 对源代码进行基本优化。这些优化在大多数情况下都会使程序执行得更快。
-g 在可执行程序中包含标准调试信息。
-Wall 能提供的所有有用的警告,也可以用-W(warning)来标识指定的
警告。
-l name 链接静态库
-L dir 库文件的搜索路径
3) 执行文件
格式: ./可执行文件名
例:
# ./
# ./count
4) 例子
:定义mypow()函数
unsigned long long mypow(unsigned int x, unsigned int y)
{
unsigned long long res=1;
if (y==0)
res = 1;
else if (y==1)
res = x;
else
res = x * mypow(x, y-1);
return res;
}
:调用mypow()函数
#include <>
#include <>
int main(int argc, char *argv[])
{
unsigned int x, y;
unsigned long long res;
if ((argc<3) || (sscanf(argv[1], "%u", &x)) != 1 || (sscanf(argv[2], "%u", &y)) != 1 )
{
printf("Usage:pow base exponent\n");
exit(1);
}
res = mypow(x, y);
printf("%u ^ %u = %u\n", x, y, res);
return 0;