关于APUE第一个程序编译出错问题,在线等~
从APUE的书上抄了第一个程序1-1,ourhdr.h 我是从课本后面的附录上面打上的,然后放在了/usr/include/中,程序存储为ls.c,程序如下:
#include <sys/types.h>
#include <dirent.h>
#include "ourhdr.h"
int
main(int argc, char *argv[])
{
DIR *dp;
struct dirent *dirp;
if(argc!=2)
err_quit("a single argument (the directory name)is required");
if((dp=opendir(argv[1]))==NULL)
err_sys("can't open %s",argv[1]);
while((dirp=readdir(dp))!=NULL)
printf("%s\n",dirp->d_name);
closedir(dp);
exit(0);
}
编译:gcc ls.c ,出错问题如下:
[root@localhost ~]# gcc ls.c
ls.c: 在函数 ‘pr_mask’ 中:
ls.c:7: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘{’ token
ls.c:21: 错误:原型函数定义中使用了旧式参数声明
ourhdr.h:35: 错误:省略了形参的名字
[root@localhost ~]#
大家帮忙看看是什么问题?谢~~
#include <sys/types.h>
#include <dirent.h>
#include "ourhdr.h"
int
main(int argc, char *argv[])
{
DIR *dp;
struct dirent *dirp;
if(argc!=2)
err_quit("a single argument (the directory name)is required");
if((dp=opendir(argv[1]))==NULL)
err_sys("can't open %s",argv[1]);
while((dirp=readdir(dp))!=NULL)
printf("%s\n",dirp->d_name);
closedir(dp);
exit(0);
}
编译:gcc ls.c ,出错问题如下:
[root@localhost ~]# gcc ls.c
ls.c: 在函数 ‘pr_mask’ 中:
ls.c:7: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘{’ token
ls.c:21: 错误:原型函数定义中使用了旧式参数声明
ourhdr.h:35: 错误:省略了形参的名字
[root@localhost ~]#
大家帮忙看看是什么问题?谢~~
...全文
相关推荐
Ubuntu12.04下编译成功的APUE附带源码
在确保一切准备就绪后,执行编译命令:```bashmake```如果编译过程中出现错误,检查错误信息并根据提示进行相应的修正。这可能涉及到更新库,或者在源码中查找并解决潜在问题。
linux下《UNIX环境高级编程》(apue2)源码编译出错的处理方法汇总
linux下《UNIX环境高级编程》(apue2)源码编译出错的处理方法 文章出处:http://www.diybl.com/course/3_program/c++/cppjs/2008617/126036.html 相信很多跟我一样想要学习unix编程的朋友在兴冲冲拿到《unix环境高级编程》后,准备拿源码练练手时,执行第一个myls就出现一大堆的 错误,这未免时个不小的打击。今天把解
apue.2e:ubuntu下可以编译通过的apue源代码
在Ubuntu环境下编译这些源代码,可以帮助开发者熟悉Linux开发环境,掌握编译和调试技巧,同时对UNIX编程有更深入的理解。通过实际操作,可以更好地消化书中的理论知识,提高问题解决能力。
Linux中搭建apue.h头文件环境
在Fedora 14和Fedora 15这样的Linux发行版上,搭建apue.h环境是必要的步骤,以确保程序能够正确编译和运行。下面将详细介绍如何在Linux中设置和使用apue.h头文件。
Mac OS X 10.8 中编译APUE(Unix环境高级编程)的源代码过程
编译并运行这个测试程序,如果一切正常,你应该能看到预期的输出。通过以上步骤,你就完成了在Mac OS X 10.8上编译APUE源代码的过程。这对于深入理解Unix系统编程、调试和优化代码非常有帮助。


