编译和使用apue.3e源码并实现第一个ls.c程序

来源:互联网 发布:小满软件 垃圾 编辑:程序博客网 时间:2024/06/11 13:22
  • 解压源码

    tar -zxvf src.3e.tar.gz

  • 编译

    make

  • 出现/usr/bin/ld: cannot find -lbsd 错误

  • 解决方法:添加libbsd.a的静态链接库

    sudo apt-get install libbsd-dev

  • 再次make则成功

    make

  • 安装apue.h文件及其对应的静态链接库libapue.a,libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。

    sudo cp ./include/apue.h /usr/include/

    sudo cp ./lib/libapue.a /usr/local/lib/

  • 编写ls.c代码

#include "apue.h"#include <dirent.h>int main(int argc,char *argv[]){    DIR *dp;    struct dirent *dirp;     if(argc != 2)        err_quit("usage:ls directory_name:");    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 -o ls -lapue

    生成了ls*

    ./ls /home/weiyi/study/apue.3e

  • 效果如下

这里写图片描述

原创粉丝点击