libpoco在mac平台编译详解

本文详细介绍了如何在MacOS Mountain Lion系统上使用make工具集成Poco库到Cocos2d-x框架中,包括配置环境、下载库、编译静态库、合并库文件以及测试SQL数据库读取的过程。

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

    libpoco是一个类似wxwidgets的极其强大的基础类库,其核心poco::net封装了大部分网络操作,poco::data封装了sqlite、mysql及odbc,甚至在里面还发现autoptr,嘎嘎,这可是好东西啊。还有些其他零零碎碎的功能,大家可以去慢慢摸索,最关键他是一个开源跨平台的类库。可以很方便的集成到cocos2d-x或unity3d这种跨平台手机开发框架中。这就是俺们寻找多时的,以下以macosx mountain-lion集成poco到cocos2d-x中为例:

    1. 首先需要一个gmake,进入终端键入make --version,如果有版本信息则跳过该步骤,否则往下看。mac平台工作的童鞋门xcode是必不可少的,没有安装的可以到appstore免费安装一个。进入xcode,选择xcode->preferences->download,选择安装command line tools,xcode自动会安装命令行模式gmake。

    2. 下载libpoco-all,解压后通过命令行进入poco根目录。输入以下命令编译静态库

sudo ./configure --config=iPhone --no-tests --no-samples --omit=Data/ODBC,Data/MySQL
sudo make IPHONE_SDK_VERSION_MIN=3.0 POCO_TARGET_OSARCH=armv6 -s -j4 
sudo make IPHONE_SDK_VERSION_MIN=3.2 POCO_TARGET_OSARCH=armv7 -s -j4 

sudo ./configure --config=iPhoneSimulator --no-tests --no-samples --omit=Data/ODBC,Data/MySQL
sudo make -s -j4

特别注意

1)如果编译不过,一般是找不到IphoneSDK路径,可打开Build/Config/Iphone,修改路径
TOOL_PREFIX  ?= /Applications/Xcode.app/Contents/Developer/Platforms/$(IPHONE_SDK).platform/Developer/usr/bin

  2)如果嵌入工程编译出现i386错误,就需要编译i386平台静态库(针对模拟器)

sudo ./configure --config=iPhoneSimulator --no-tests --no-samples --omit=Data/ODBC,Data/MySQL
sudo POCO_TARGET_OSARCH=i386 make -s -j4

3)请将BuildSetting的c++ standard library项修改成libstdc++(GNU C++ standard library),否则会出现编译错误


  3. 合并编译出的各平台静态库,如果单独编译了i386架构,需要把i386下静态库一起合并。

mkdir lib/iPhoneOS/universal

sudo lipo -create lib/iPhoneOS/armv6/libPocoFoundation.a lib/iPhoneOS/armv7/libPocoFoundation.a lib/iPhoneSimulator/i686/libPocoFoundation.a -output lib/iPhoneOS/universal/libPocoFoundation.a
sudo lipo -create lib/iPhoneOS/armv6/libPocoNet.a lib/iPhoneOS/armv7/libPocoNet.a lib/iPhoneSimulator/i686/libPocoNet.a -output lib/iPhoneOS/universal/libPocoNet.a
sudo lipo -create lib/iPhoneOS/armv6/libPocoUtil.a lib/iPhoneOS/armv7/libPocoUtil.a lib/iPhoneSimulator/i686/libPocoUtil.a -output lib/iPhoneOS/universal/libPocoUtil.a
sudo lipo -create lib/iPhoneOS/armv6/libPocoXML.a lib/iPhoneOS/armv7/libPocoXML.a lib/iPhoneSimulator/i686/libPocoXML.a -output lib/iPhoneOS/universal/libPocoXML.a
sudo lipo -create lib/iPhoneOS/armv6/libPocoData.a lib/iPhoneOS/armv7/libPocoData.a lib/iPhoneSimulator/i686/libPocoData.a -output lib/iPhoneOS/universal/libPocoData.a

  4. 执行 sudo make install ,并将合并的.a覆盖到/usr/local/lib

  5. 下面测试读取sqlite,将下述代码加入工程,如果编译通过,说明成功了。

// Poco::Data例子
#include "Poco/Data/Common.h"
#include "Poco/Data/SQLite/Connector.h"
#include <iostream>

// connect sqlite
Poco::Data::SQLite::Connector::registerConnector();
    Poco::Data::Session ses("SQLite","./sqlite.db"); // 自己定义路径
int count = 0;
ses << "SELECT COUNT(*) FROM test" ,Poco::Data::into(count) ,Poco::Data::now;
std::cout << "People in DB " << count;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值