• UNP 环境配置


    在www.unpbook.com上下载源码,或者直接搜那个源码压缩包可以搜到,注意用的是13e版本,网上很多是第二版的。然后按照里面的README进行MAKE生成静态库文件,然后将两个头文件放到/usr/include下,将静态库文件放到/usr/lib和/usr/lib64下。

    还要有apue的代码,这个我忘了有没生成静态库文件了,哦,其实没用到apue的代码,只是用到apueerror.h,这个网上搜一下搜到的,然后里面有#include<apue.h>,但是没用到,我把这行注释了也能没问题。

    然后环境就差不多弄好了,里面还有一些细节问题,比如某个size_t size 要改成socket_t size,还有头文件unp.h里的include "../config.h"要改成 "config.h"(大概是这样,可能有点差别,详情网上搜一下)。

    然后编译第一章的服务器程序,发现包裹函数Bind、Socket之类的没定义,这些函数在unp.h里有声明,定义估计是在libunp.a里,网上搜了下,在gcc命令行末尾加上-lunp就行了,大概是让加入libunp.a这个静态链接库一起链接吧。使用g++编译出错,gcc就没问题,百度了下原来g++把.c也当成c++来编译了,然后

    #include
    int main(int argc, char* argv[]) {
       if(argv == 0) return;
       printString(argv);
       return;
    }
    int printString(char* string) {
      sprintf(string, "This is a test. ");
    }

    这种情况,c语言可以,c++会报错。出错原因应该是类似这个吧。哦,好像是gcc只编译,要链接需要的库的话要加-l,g++能自动链接。

    编译链接第一章的客户端、服务器程序,都能生成可执行文件的话就说明没问题了。然后要打开服务器程序,需要sudo。然后执行客户端程序访问本地127.0.0.1,就能得到时间。

  • 相关阅读:
    kettle表输入条件参数设置
    batの磕磕碰碰
    bat调用kettle的job文件
    数组转换成字符串输出
    bat调用带参数存储过程
    读取属性文件
    剑指Offer——删除链表中重复的结点
    剑指Offer——链表中环的入口节点
    剑指Offer——两个链表的第一个公共节点
    剑指Offer——表示数值的字符串
  • 原文地址:https://www.cnblogs.com/seen1020/p/4607791.html
Copyright © 2020-2023  润新知