zoukankan      html  css  js  c++  java
  • APUE(unix环境高级编程)第三版---first day---部署书中实例的运行环境(apue.h)

    操作环境:RHEL7.0

    部署apue.h实例运行环境

    1.下载头文件src.3e.tar.gz
    2.解压

    tar zxvf src.3e.tar.gz
    

    3.创建普通用户(我仿照书上创建的sar用户)

    useradd sar
    

    4.修改文件
    * 文件apue.3e/Make.defines.linux加入下面所示内容,指定工作目录
    6 WKDIR = /home/sar/apue.3e
    * 文件apue.3e/threadctl/getenv1.capue.3e/threadctl/getenv3.c第一行修改如下
    1 #include <linux/limits.h>

    5.下载安装libbsd和libbsd-devel(我尝试yum安装,显示找不到libbsd安装包,故如下下载rpm包)

    wget http://elrepo.reloumirrors.net/testing/el6/x86_64/RPMS/libbsd-devel-0.2.0-4.el6.elrepo.x86_64.rpm
    wget http://elrepo.reloumirrors.net/testing/el6/x86_64/RPMS/libbsd-0.2.0-4.el6.elrepo.x86_64.rpm
    rpm -ivh libbsd-0.2.0-4.el6.elrepo.x86_64.rpm
    rpm -ivh libbsd-devel-0.2.0-4.el6.elrepo.x86_64.rpm
    

    若不安装则在下一步make时会出现如下报错:

    .....
    barrier.c:(.text+0x6e): undefined reference to `heapsort’
    collect2: ld
    make[1]: *** [barrier] 
    make[1]: Leaving directory `/home/albert/Documents/progs/apue.3e/threads’
    make: *** [all] 
    

    6.编译apue

    cd apue.3e/
    make
    

    7.把apue.hlibapue.a放入到对应的目录中

     cp ./include/apue.h /usr/include/
     cp ./lib/libapue.a /usr/local/lib/
    

    原因:libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。查看ld.conf.d/libc.conf你会发现gcc在搜索链接库的时候默认会去搜索/usr/local/lib/中的文件。

  • 相关阅读:
    Revit API改变风管及管件尺寸
    Revit API注册事件
    Revit API创建标高,单位转换
    Revit API判断直线相交关系移动风管
    Revit MEP API找到连接器连接的连接器
    Revit MEP API连接器类别
    AngularJS如何编译和呈现页面
    AngularJS自定义Directive初体验
    Webpack基本用法
    对一个前端AngularJS,后端OData,ASP.NET Web API案例的理解
  • 原文地址:https://www.cnblogs.com/cherishry/p/6294549.html
Copyright © 2011-2022 走看看