POCO C++ 在IOS上的使用

本文介绍了如何在iOS平台上使用POCO C++库,包括下载源码、编译静态库(针对armv6, armv7及模拟器)、合并不同架构的.a文件以及在Xcode项目中的集成步骤。通过这个教程,开发者可以学习到如何在iOS项目中利用POCO库进行socket和HTTP等相关功能的实现。" 107426013,9788186,无人驾驶预测技术解析:从车道预测到RNN,"['自动驾驶', '机器学习', '神经网络', '路径规划', '无人驾驶技术']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      POCO C++是一个开源的C++库,这个库的功能还挺多,包括socket,http,加密,xml解析等,这些功能可能在将来的项目中可能都需要用到,所以先行学习.(参考:http://pocoproject.org/forum/viewtopic.php?f=12&t=4844)

1.首先到http://pocoproject.org/下载源码.

2.把解压后的文件夹拖到桌面,打开终端,输入以后命令,跳转到Poco文件夹:

cd Desktop/poco-1.4.3p1/

3.输入以后命令编译出静态库:

# build for iOS device, armv6 and armv7
./configure --config=iPhone --no-tests --no-samples --omit=...
make IPHONE_SDK_VERSION_MIN=3.0 POCO_TARGET_OSARCH=armv6 -s -j4 
make IPHONE_SDK_VERSION_MIN=3.2 POCO_TARGET_OSARCH=armv7 -s -j4 
# build for simulator
./configure --config=iPhoneSimulator --no-tests --no-samples --omit=...
make -s -j4 cd Desktop/poco-1.4.3p1/

4.等编译好了,文件夹下应该多出一个lib文件夹


5.打开lib下面的两个文件夹,会看到编译好的.a文件,分别为使用与armv6,armv7,simulator的.a文件,也就是在我们项目使用的时候得分别加载不同文件夹下面的.a文件,所以最好是合并在一起,但这也导致合并后的.a文件比较大.

6.首先创建一个文件夹:

mkdir lib/iPhoneOS/universal

7.进行合并,可以根据项目的需要合并需要的.a文件, 我这里只想测试下socket的使用,所以只用了libPocoFoundation.a(必须的)和libPocoNet.a:

lipo -create lib/iPhoneOS/armv6/libPocoFoundation.a lib/iPhoneOS/armv7/libPocoFoundation.a lib/iPhoneSimulator/i686/libPocoFoundation.a -output lib/iPhoneOS/universal/libPocoFoundation.a

lipo -create lib/iPhoneOS/armv6/libPocoNet.a lib/iPhoneOS/armv7/libPocoNet.a lib/iPhoneSimulator/i686/libPocoNet.a -output lib/iPhoneOS/universal/libPocoNet.a 

8.用xcode新建一个cocos2dx的项目(自己用cocos2dx做游戏开发^^),把刚生成的libPocoFoundation.alibPocoNet.a拖进项目,并把.a文件需要的头文件也拖进去.拖进去后相应的目录结构为:

#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketAddress.h"
using Poco::Net::SocketAddress;
using Poco::Net::StreamSocket;

9.测试HelloWorldScene.cpp中加入头文件.


在init方法中加入:、

    SocketAddress address("10.1.23.28", 60000);
    StreamSocket socket;
    socket.connect(address);
    socket.sendBytes("Hello", 5);   
    char buffer[BUFFER_SIZE];
    while (true)
    {
        if (socket.available())
        {
            int len = socket.receiveBytes(buffer, BUFFER_SIZE);
            buffer[len] = '\0';
            printf("%s\n",buffer);
        }
    }
当然这是简单的使用了socket,还不能实际运用到项目中,先开个头吧,具体的需要自己慢慢学习,第一次写文章,有问题请指出,谢谢. 








                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值