美文网首页
如何在Xcode上运行《unix网络编程 》的代码(转载)

如何在Xcode上运行《unix网络编程 》的代码(转载)

作者: sqatm | 来源:发表于2019-01-02 13:15 被阅读36次

由于自己配置unp相关头文件时遇到了很多问题,因此记录下Xcode配置unp开发环境的小技巧。apue开发环境也是类似的。

首先在Xcode下创建一个项目,选择Command Line Tool,点击next,填写Product Name和Organization Identifier(随意),选择Language为C。至此项目完毕。

image

——》

image

http://www.unpbook.com/src.html下载本书需要用到的源代码,解压至自定义文件夹。我这里讲文件夹解压到了/Users/hupac/Downloads/unpv13e,这个路径之后需要用到。然后选择项目的Build
Settings,在Header Search
Path中填入/Users/hupac/Downloads/unpv13e/lib,因为lib文件夹中基本包含了本书需要用到的头文件。

image

如果此时运行第一章中的daytimetcpcli.c仍然会报错,因为没有导入config.h。因此,在unpv13e文件夹中的sparc64-unknown-freebsd5.1文件夹下找到config.h,并将config.h复制到unpv13e/lib(也就是刚才填写的Header Search Path路径下),并在unp.h中将#include “../config.h”修改为#include “config.h”。这样是让unp.h能够在本文件夹中找到对应的config.h。

至此unp相关的基本的头函数已经导入,但是在unp.h中只声明了相关的函数名,而函数源代码需要在.c文件中实现。例如,err_sys()函数,需要在编程时#include “error.c”(如果将这句代码写在unp.h中程序会报错,但我并不知道为什么会这样23333)。再例如,unp.h中声明了socket相关的包裹函数名,而函数是在wrapsock.c中具体实现的,因此在编程时需要#include “wrapsock.c”。因此,在具体编程时,需要根据自己需求来导入相关的.c文件(这种方法不太好,但是目前没找到更好的解决方法)。

针对第一章中daytimetcpsrv.c程序的讨论。因为daytimetcpsrv.c是获取时间的服务器程序,代码中用到了bind函数的包裹函数Bind,其中有绑定地址和端口操作,而这些操作需要ROOT权限的支持。解决方法:利用管理员权限启动Xcode即可:
sudo /Applications/Xcode.app/Contents/MacOS/Xcode .
总结:这是我目前利用Xcode编写unp上的示例程序时遇到的问题,现在分享给大家,接下来我会继续更新之后的尝试中发现的问题。


作者:也门逊尼派歌手
来源:CSDN
原文:https://blog.csdn.net/asap_diablo/article/details/75379484
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

  • 如何在Xcode上运行《unix网络编程 》的代码(转载)

    由于自己配置unp相关头文件时遇到了很多问题,因此记录下Xcode配置unp开发环境的小技巧。apue开发环境也是...

  • 如何用root用户去使用Xcode的Debug

    最近在学习unix网络编程,需要用到 RAW Socket,但是在xcode下直接debug会出现问题如创建原始套...

  • Java NIO

    书本 Netty权威指南netty实战O’Reilly的《Java nio》Unix网络编程 《unix网络编程》...

  • 《Unix网络编程》中的源代码使用方法

    《Unix网络编程》中的源代码大都是基于作者提供的头文件跟库,所以使用前需要适当配置好运行环境。搭建步骤: 一、下...

  • Xcode

    Xcode xcode是一款优秀的移动端儿童编程软件,根据特定代码块组合逻辑运行代码,让孩子们不用敲一行代码便能开...

  • 计算机网络通信协议及名词释义

    UNIX网络编程涉及的名词

  • 书单

    Unix 编程艺术Java编程思想数据结构与算法分析unix环境高级编程代码大全Effective javajav...

  • unix网络编程

    套接字地址结构 ipv4套接字地址结构 POSIX定义如下: sin_len字段,是由处理来自不同协议族的套接字地...

  • 调试daytimetcpcli

    《unix网络编程》调试《unix网络编程》第一个程序的时候,出现connect失败。打出错误码是Connecti...

  • 技术书籍整理

    《重构:改善既有代码的设计》《修改代码的艺术》《程序员的自我修养 - 链接、装载与库》俞《UNIX网络编程.卷2....

网友评论

      本文标题:如何在Xcode上运行《unix网络编程 》的代码(转载)

      本文链接:https://www.haomeiwen.com/subject/btkzlqtx.html