免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach
打印 上一主题 下一主题

(初学APUE的进来看看)《UNIX环境高级编程》单个源码编译方法 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-08-26 10:37 |只看该作者

与LZ的方法不同

我比较懒,不想自己去写出错函数,直接用apue作者的error.c和apue.h头文件
由于编译的时候常常加上error.c, -Wall, -o选项之类的,手指很累...
于是我写了一个小脚本,如下:

#!/bin/sh
#gg
#以下是修改的gg脚本,添加了一个函数,indent每一个.c和.h的功能
#wraper the gcc
#set -x
#用indent所有的c文件和头文件(因为我向ssh中拷代码的时候缩进总是出问题,所以需要indent)
go2indent()
{
  for tt in $*
  do
    char=`echo $tt|cut -d. -f2`
    if [ $char = "c" -o $char = "h" ]; then
      char=""
      #此处indent格式自己修改。
      indent -ts2 -bli0 $tt
      rm $tt~ >/dev/null 2>&1
    fi
  done
}
#不需要indent的话,直接注释下面这条语句
go2indent $*
exec_obj=`echo $1|cut -d. -f1`
if gcc error.c $* -Wall -o $exec_obj; then
  echo "gcc Done! Create executable file \"$exec_obj\"."
else
  echo "gcc failed!"
  exit 1
fi
#end

把error.c和apue.h拷到当前目录
例,编译test.c文件,输入./gg test.c 就在当前目录生成test可执行文件
如果编译多个文件,1111.c, 2222.c, 3333.c,输入./gg 1111.c 2222.c 3333.c即可,生成的是1111可执行文件.
需要动态连接库libpthread.so?输入./gg test.c -lpthread就行

[ 本帖最后由 科技牛 于 2007-8-27 19:52 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2007-08-26 18:11 |只看该作者
第二版源代码只需要更改MAKEFILE文件的路径就可以,MAKE一下什么都不用就生成了可执行程序了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
13 [报告]
发表于 2007-08-27 09:08 |只看该作者
原帖由 vict0718 于 2007-8-26 18:11 发表
第二版源代码只需要更改MAKEFILE文件的路径就可以,MAKE一下什么都不用就生成了可执行程序了

嗯,第二版代码的 Makefile 好用了不少

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
14 [报告]
发表于 2007-08-27 09:50 |只看该作者
原帖由 MMMIX 于 2007-8-27 09:08 发表

嗯,第二版代码的 Makefile 好用了不少


对啊,APUE2的编译方法省事多了,改天有时间详细整理一下贴出来,给那些仍旧为apue.h而困惑的朋友做个参考。

论坛徽章:
0
15 [报告]
发表于 2007-08-27 13:12 |只看该作者
晕,偶都看不明白.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
16 [报告]
发表于 2007-08-27 18:38 |只看该作者
原帖由 Godbach 于 2007-8-27 09:50 发表


对啊,APUE2的编译方法省事多了,改天有时间详细整理一下贴出来,给那些仍旧为apue.h而困惑的朋友做个参考。

对 apue.h 有困惑都是由于看书不仔细

论坛徽章:
0
17 [报告]
发表于 2007-08-28 09:27 |只看该作者
我刚买来这本书,马上就着手看了,不知道看这书需要什么基础吗?
我已经有了c,c++,数据结构等基础。还需要什么基础吗?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
18 [报告]
发表于 2007-08-28 10:30 |只看该作者
原帖由 reedwind 于 2007-8-28 09:27 发表
我刚买来这本书,马上就着手看了,不知道看这书需要什么基础吗?
我已经有了c,c++,数据结构等基础。还需要什么基础吗?


这本书是基于Unix操作系统来讲的,所以reedwind兄应该对Unix或Linux的操作比较熟悉。

论坛徽章:
0
19 [报告]
发表于 2007-08-28 10:53 |只看该作者
谢谢Godbach
我先看看这本书

论坛徽章:
0
20 [报告]
发表于 2007-08-28 15:31 |只看该作者
我直接将头文件放到本地目录下,就没有问题了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP