Linux系统怎么编译sin,Linux系统中如何编译C程序专用课件.ppt

Linux系统中如何编译C程序专用课件

Linux操作系统 上课教师: 张利 上课时间: 2009年春季 Linux系统中如何编译C程序 登陆后用vi 写一个C程序:过程如下: ??? vi HelloLinux.c 回车 ??? 进入后选择一种输入方式(a ,i ,o); ??? #include ??? main() ??? { ??? printf("Hello Linux !\n"); ??? } Linux系统中如何编译C程序 用Vi输入程序时,修改,编辑代码很复杂,可以用“application”中的“附件”的“文本编辑器”进行编辑 ??? #include ??? main() ??? { ??? printf("Hello Linux !\n"); ??? } 写完程序后Esc 并保存退出(:w “保存” :q “退出”) ??? 然后用gcc 编译: ??? gcc HelloLinux.c 回车 ??? 用ls 查看就会看到一个HelloLinux.out 文件,下面我们运行它; ??? 。/HelloLinux.out 回车 ??? 将会显示 ??? Hello linux ! linux下对C代码的编译 在linux 下对C代码的编译时极其简单的,但是,不能忘记步骤。 ??? 要进入自己所要的目录:cd 文件名 ??? 如果要是返回上级目录:cd …… ??? 要查看下面的子目录:ls 或者ll ??? 建立新目录:mkdir 文件名 ??? 删除空目录: rmdir 文件名 非空的rm ??? 编译 :gcc -o test test.c ??? 输出:。/test Linux平台下关于GCC编译及使用的方法 编译: ??? 第一步、是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程: ??? gcc -E hello.c -o hello.i ??? 预处理的宏定义插入到hello.i中 ??? 第二步、是将hello.i编译为目标代码,这可以通过使用-c参数来完成: ??? gcc -c hello.i -o hello.o ??? 也可以通过源文件直接生成 ??? gcc -c hello.c ??? 第三步、是将生成的目标文件链接成可执行文件: ??? gcc hello.o -o hello ??? 也可以通过源文件直接生成 ??? gcc -o hello hello.c 警告: ??? 1、-pedantic 选项,那么使用了扩展语法的地方将产生相应的警告信息 ??? 2、-Wall 使用它能够使GCC产生尽可能多的警告信息 ??? 3、-Werror,它要求GCC将所有的警告当成错误进行处理 ??? 库依赖: ??? 1、Linux下的大多数函数都默认: ??? 头文件放到/usr/include/目录下 ??? 而库文件则放到/usr/lib/目录下 ? 2、GCC在编译时必须有自己的办法来查找所需要的头文件和库文件。 ??? -I选项可以向GCC的头文件搜索路径中添加新的目录。 ??? 例如,如果在/home/xiaowp/include/目录下有编译时所需要的头文件,为了让GCC能够顺利地找到它们,就可以使用-I选项: ??? gcc -o test test.c -I /home/xiaowp/include ??? -L选项向GCC的库文件搜索路径中添加新的目录 ??? 例如,如果在/home/xiaowp/lib/目录下有链接时所需要的库文件libfoo.so,为了让GCC能够顺利地找到它,可以使用下面的命令 ??? gcc -o test test.c -L /home/xiaowp/lib -lfoo ??? 值得好好解释一下的是-l选项,它指示GCC去连接库文件libfoo.so. ? Linux下的库文件在命名时有一个约定,那就是应该以lib三个字母开头,由于所有的库文件都遵循了同样的规范,因此在用-l选项指定链接的库文件名时可以省去lib三个字母,也就是说GCC在对-lfoo进行处理时,会自动去链接名为libfoo.so的文件。 ??? -static选项,强制使用静态链接库 ??? 如果在/home/xiaowp/lib/目录下有链接时所需要的库文件libfoo.so和libfoo.a ??? 为了让GCC在链接时只用到静态链接库,可以使用下面的命令: ??? gcc -o test test.c -L /home/xiaowp/lib -static -lfoo ??? 选项-O可以告诉GCC同时减小代码的长度和执行时间,其效果等价于-O1. ??? 在这一级别上能够进行的优化类型虽然取决于目标处理器,但一般都会包括线程跳转(Thread J

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值