首页 > 其他 > 详细

关于UNIX网络编程的环境配置问题(unp.h配置问题)

时间:2020-11-07 21:58:59      阅读:39      评论:0      收藏:0      [点我收藏+]

这个随笔会出现的相关问题:

  1、配置unix网络环境(unp.h,config.h等等)

  2、对于笔者出现的问题(找不到头文件的情况)

  3、在c++文件中unp头文件出现的问题

 

 

1、配置unix网络环境(unp.h,config.h等等)

首先一开始要下载源码,网址是:http://www.unpbook.com/src.html

技术分享图片

 

 

 

后面要正常解压文件。

在文件中有一个README的文本文件。

 

其中有源码作者写出的过程步骤。

首先执行命令:

./configure

cd lib
make

cd ../libgai
make

cd ../libfree
make

cd ../libroute //only if your system supports 4.4BSD style routing sockets
make //only if your system supports 4.4BSD style routing sockets

cd ../libxti //only if your system supports XTI
make //only if your system supports XTI


cd ../intro
make

 

其中libfree文件夹用make可能会出现error。

技术分享图片

 

 

 

需要在文件inet_ntop.c中的第60行把size_t改成socklen_t。这样就能解决问题了。

技术分享图片

 

 

 

 

在上面的代码中有两个是有需要才Makefile的,也就是说一般来说只需要Makefile四个就行了。

当执行完这些步骤之后unpv13e文件夹中会出现一个静态库:libunp.a

 

现在需要将两个头文件别分是:lib文件夹中的unp.h和unpv13e文件夹的config.h

复制到/usr/include 文件夹中。

然后将libunp.a静态库复制到  /usr/lib32  和  /user/lib64。

正常来说到了这里,你现在可以系统到处直接编译包含unp.h文件的源代码了。

2、对于笔者出现的问题(找不到头文件的情况)

但是笔者到了这个地步的时候出现了其他的问题

技术分享图片

 

 

 出现了这样的问题。

笔者在上面的复制步骤使用过也正常。但是就是不能正常编译。

最后我使用cmake解决了这个问题。

其中文件夹中的CMakeLists.txt文件(要小心不要忘记了最后的s)是下面这样写的:

CMAKE_MINIMUM_REQUIRED(VERSION 3.10)    //cmake版本

PROJECT(demo)                           //输出文件的名称

AUX_SOURCE_DIRECTORY(./ DIR_SRSC)       //把该文件夹里面的全部源码  打包成DIR_SRSC

ADD_EXECUTABLE(demo ${DIR_SRSC})        //把资源包DIR_SRSC编译

include_directories(./headerfile)       //引人要使用的头文件,该文件夹里面有unp.h和config.h。

TARGET_LINK_LIBRARIES(demo libunp.a)    //引人要使用的静态库

最后一个语法语句,使用绝对路径是可以的。(demo   绝对路径)

但是不知道为什么笔者写的相对路径一直出错。最后发现直接写libunp.a是可以正常编译的。

(还有神奇的情况,写unp,unp.a,libunp在笔者的虚拟机ubuntu-20.04-desktop-amd64都是可以正常通过编译的)。

   3、在c++文件中unp头文件出现的问题

第二个问题用cmake解决了,但是发现了unp文件如果用gcc编译是正常的。但是如果用到了cpp文件或者g++编译就会出现一堆错误。

 

由于笔者是一名c++萌新,打算用c++进行网络编程的练习,所以问过了一名好友。

发现了源码编译的时候,unp头文件套进一个extern "C" 就能解决问题

这个问题是一个著名的问题:ABI问题。

技术分享图片

其中一个容易错误的问题,要把unp.h头文件放在头文件序列里面最后。不然会出现error错误。

 

这样就能使用c++源文件来写了!

 

 

关于UNIX网络编程的环境配置问题(unp.h配置问题)

原文:https://www.cnblogs.com/Maxwalker-pub/p/13942436.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!