LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: shell

ourhdr.h

[复制链接]
发表于 2004-10-10 13:49:53 | 显示全部楼层
一不小心发成两次,版主请删除
发表于 2004-10-10 15:52:02 | 显示全部楼层
晕,楼上你是自己打的ourhdr.h,楼主是直接找的源码包。
源码包里包括里所有apue书上的程序,分别归类整理在一些子文件夹下,主目录下有一个Sourcefiles文件列出了所有文件。

根据源码包里面的说明修改源码目录下的Make.def.xxx和lib.xxx下的Makefile编译lib.xxxx下的东西,
得到一个静态库$apue/libmisc.a,再编译其他源程序的时候只要连接这个库
就可以啦。那个静态库里不仅有出错处理程序,还有一些其他函数

源码包里面每一个子文件夹下都有ourhdr.h。进入各个子目录,make就可以了。
但是子目录下的哪些Makefile都有些问题,需要简单修改一下,主要是里面多出了一些文件名。
发表于 2004-10-10 17:45:59 | 显示全部楼层
最初由 yangtou 发表
晕,楼上你是自己打的ourhdr.h,楼主是直接找的源码包。
源码包里包括里所有apue书上的程序,分别归类整理在一些子文件夹下,主目录下有一个Sourcefiles文件列出了所有文件。

根据源码包里面的说明修改源码目录下的Make.def.xxx和lib.xxx下的Makefile编译lib.xxxx下的东西,
得到一个静态库$apue/libmisc.a,再编译其他源程序的时候只要连接这个库
就可以啦。那个静态库里不仅有出错处理程序,还有一些其他函数

源码包里面每一个子文件夹下都有ourhdr.h。进入各个子目录,make就可以了。
但是子目录下的哪些Makefile都有些问题,需要简单修改一下,主要是里面多出了一些文件名。


明白兄弟的说法
呵呵,这样做也好,可以少打许多代码(但恐怕得先学会gcc & makefile了)
下载源码使用也是一种学习的办法
自己敲代码也是一种方法,楼主自己看哪种方式合适,要不可以全试一下
我也空也试试,谢谢指教,这样我该少打多少代码呀
发表于 2004-10-10 18:16:01 | 显示全部楼层
哈哈,我就是这样开始学Makefile的,不过代码我也没少敲,通通自己敲了一遍
 楼主| 发表于 2004-10-10 18:30:38 | 显示全部楼层
我得慢慢看懂你们的话才能消化,非常感谢你们
发表于 2005-5-6 11:02:41 | 显示全部楼层
我的问题:
#include "stdio.h"
int main(void)
{
   printf("uid=%d,gid=%d\n",getuid(),getgid());
   exit(0);
}
gcc -o id id.c
$id
uid=1003(luopeng) gid=27(sudo) groups=4(adm),20(dialout),21(fax),24(cdrom),25(floppy),26(tape),27(sudo),29(audio),30(dip),46(plugdev),108(scanner)
但我把头文件改成ourhdr.h,编译:
$gcc -o id id.c -I/home/luopeng/c编译通过。
但输入id时,提示command not found。这是为什么?
回复 支持 反对

使用道具 举报

发表于 2005-5-6 11:14:44 | 显示全部楼层
不好意思,知道了,是执行./id而不是id。
回复 支持 反对

使用道具 举报

发表于 2006-7-15 10:36:03 | 显示全部楼层

myerror.c

我在看unix环境高级编程,我在编译标准出错处理函数(gcc -o myerror.o myerror.c -I/ourhdr.h)时提示[wyx@localhost test]$ gcc -o myerror.o myerror.c -I/ourhdr.h
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:77: undefined reference to `main'
/tmp/cc42IqgV.o(.text+0x7e): In function `err_msg':
: undefined reference to `va_stat'
collect2: ld returned 1 exit status
请问怎么解决啊,我刚刚开始学, h好像是缺少主函数,如果是,主函数该怎样写呢?
回复 支持 反对

使用道具 举报

发表于 2006-7-15 10:38:16 | 显示全部楼层
希望各位大虾能帮帮小弟
回复 支持 反对

使用道具 举报

发表于 2006-8-6 22:23:58 | 显示全部楼层
kiron兄弟,你文件myerror.c中有个错误……怪不得我编译不成功~呵呵


void
err_msg(const char *fmt, ...)
{
  va_list ap;

  va_start(ap, fmt); //missing a "r"
  err_doit(0, fmt, ap);
  va_end(ap);
  return;
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表