zoukankan      html  css  js  c++  java
  • <unix网络编程> 的环境配置

    <unix网络编程> 的环境配置

     

    首先在网上下载UNP的库文件,然后就可以安装学了。我的系统环境:

    2.6.32-131.0.15.el6.i686 #1 SMP Sat Nov 12 17:30:50 CST 2011 i686 i686 i386 GNU/Linux

    LSB Version:    :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
    Distributor ID:    CentOS
    Description:    CentOS release 6.1 (Final)
    Release:    6.1
    Codename:    Final


    一. 生成libunp.a静态库

        cd unpv3e        #源目录
     
        ./configure     # try to figure out all implementation differences  
                           生成config.h配置文件
     
        cd lib             # build the basic library that all programs need  
        make             # use "gmake" everywhere on BSD/OS systems  
     
        cd ../libfree     # continue building the basic library  
        make             生成libunp.a

    二. 复制配置文件(也可用其他方法)
        
        cp unp.h          /usr/local/include     //要该变root权限,unp.h在lib目录中
        cp unpthread.h  /usr/local/include  //线程的头文件
        cp config.h     /usr/local/include     //config.h在源目录中
        cp libunp.a     /usr/local/lib        //libunp.a在源目录中
        
    三. 修改配置文件
        
        cd /usr/local/include
        vim unp.h    #include "../config.h" 改为 #include "config.h",unp.h和config.h是在一起的。

        修改三个文件的权限属主(chown,chgrp)等

        为了使用g++进行编译:
        将unp.h和unpthead.h内容放在extern “C”中间
        extern "C" {
        ...
        } /* extern "C" */

        为了可以调试打印在unp.h中添加:
        #ifdef DEBUG
        #define DPRINTF(fmt, ...)        printf(fmt, ##__VA_ARGS__), printf(" "), fflush(NULL)    
        #else
        #define DPRINTF(fmt, ...)        ((void)0)
        #endif

    四. 修改环境变量(已添加的可以不用了)
        
        vim .bash_profile
        PATH中添加/usr/local/include:/usr/local/lib

    五. 验证
        
        cd 源目录/intro

        gcc byteorder.c -o byteorder -lunp
        ./byteorder
        i686-pc-linux-gnu: little-endian
        验证OK

    注意: 我们自己写程序时,不能使用c99标准的内容(例如for(int i)), 否则会出现unp.h编译错误。
        




        

     

     

  • 相关阅读:
    使用清华源进行pip install
    BERT和ULMFIT embedding比较文本分类结果
    Ubuntu16.04更新python3.5到python3.7
    base64方式显示控件
    在使用redis做缓存后,mybatis的延迟加载失效
    springboot:redis反序列化发生类型转换错误
    eclipse :代码自动补全不生效解决办法
    微信扫码支付:问题集锦
    微信扫码支付(4):统一下单
    微信扫码支付(3):获取验签秘钥
  • 原文地址:https://www.cnblogs.com/hancm/p/3866731.html
Copyright © 2011-2022 走看看