zoukankan      html  css  js  c++  java
  • UNIX环境高级编程 使用方法

    1、解压文件到apue.2e目录
    2、修改相应平台的文件,我使用的是linux,所以修改Make.defines.linux
    你修改的只需要这一行WKDIR=/home/your_dir/apue2e_src/apue.2e,改成自己的目录路径
    3、记得首先安装开发工具,最简单的方法是进入图形界面的添加删除程序,选上开发工具就可以了。 cd到apue.2e目录执行make,之后你会在lib目录下面找到libapue.a 这个文件.
    现在,你可以把它拷贝到你能寻找的地方,在编写例子的时候,你就可以

    4、拷贝apue2e_src/apue.2e/include/apue.h和apue2e_src/apue.2e/lib/libapue.a

    到你的源 代码目录。

    5、使用gcc -o hello hello.c libapue.a来编译 你的源 代码





    1 获得源码
    从apue的官方网站http://www.apuebook.com/下载源码。(http://www.apuebook.com/src.tar.gz)
    2 WKDIR
    编辑源码解压生成的apue.2e文件夹下的Make.defines.linux
    修改WKDIR=/home/sar/apue.2e为你的apue.2e目录,
    比如我的apue源码解压在主目录下,那我就改为:
    WKDIR=/home/chen/apue.2e
    3 nawk
    然后进入apue.2e/std 目录,编辑linux.mk。修改里面所有的nawk为awk。
    4 stropts.h
    如果出现stropts.h找不到的情况,则下载glibc-2.11 (地址 http://ftp.gnu.org/gnu/glibc/),解压缩
    #cp ./glibc-2.11/streams/stropts.h /usr/include
    #cp ./glibc-2.11/bits/stropts.h /usr/include/bits
    #cp ./glibc-2.11/sysdeps/x86_64/bits/xtitypes.h /usr/include/bits

    make clean 一下
    继续make

    5 ARG_MAX
    在我的机器上编译时,提示ARG_MAX未定义,可以这么修改。
    在apue.2e/include/apue.h中添加一行:
    #define ARG_MAX 4096
    打开apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行:
    #include "apue.h"

    若要自己编译单个文件,则将 apue.h 和上述编译成功后生成的 libapue.a 静态库文件考到系统目录去
    #cp ~/apue.2e/include/apue.h /usr/include
    #cp ~/apue.2e/lib/libapue.a /usr/lib
    举例编译第一个文件 ls1.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 ", dirp->d_name);

            closedir(dp);
            exit(0);
        }

    链接apue的静态库即可:
    $gcc -Wall ls1.c -lapue -o ls1

    如果不拷贝 apue.h 和 libapue.a,则需要在编译命令中分别以 -I 和 -L 参数指定两个文件的位置(绝对相对均可),如:
    $gcc -Wall ls1.c -I~/apue.2e/include -L~/apue.2e/lib -lapue -o ls1

    另:libapue.a 这个静态库也可以自己编译生成。
    $ar rs libapue.a ~/apue.2e/lib/*.o
    或者:
    $ar r libapue.a ~/apue.2e/lib/*.o
    $ranlib libapue.a

  • 相关阅读:
    AWVS使用基础教程 什么是AWVS Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的网络漏洞扫描工具
    91家纺网,三次更新,配套数据库models
    91家纺网,三次更新,此次代码不可联通
    91家纺网,二次更新
    91家纺
    Copy_Excel_To_Excel#--此脚本用于将目标表格写入新的表格--
    Find_Excel_From_Dir获取特定目录下的excel表格,将数据复制出来
    递归解压压缩包_模块更新(需要下载对应的解压程序)
    更新的Main函数
    添加copy模块_复制Excel文件
  • 原文地址:https://www.cnblogs.com/any91/p/3406296.html
Copyright © 2011-2022 走看看