libpoco在mac平台编译详解
来源:互联网 发布:红叶知弦 编辑:程序博客网 时间:2024/04/30 04:10
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;
- libpoco在mac平台编译详解
- Ubuntu下编译基于libpoco工程详解
- xvid 在MAC平台编译的问题
- 在MAC平台上编译GLFW并配置到Xcode
- MAC 和 LINUX 平台编译
- mac os平台编译jaberd
- Lua编译安装(MAC平台)
- qt5.6.0在Mac平台编译10.7版本的软件出错
- 在Mac平台使用Docker搭建AOSP(Android源代码)编译环境
- mac平台wxWidgets编译及测试
- OBS-Studio MAC平台编译 --- 史上最全
- mac平台electron native(ffmpeg)模块编译
- 转:OBS-Studio MAC平台编译 --- 史上最全
- 在Mac上编译CURL
- 在mac上编译openssl
- 在mac上编译htk
- 在Mac下编译webdis
- 在mac上编译lame
- 抛弃MFC, 转向.Net
- SQL Server判断对象是否存在 (if exists (select * from sysobjects )
- OpenCV2马拉松第26圈——FAST特征点检测
- settimeout(0) 的作用解析
- 机器学习中的算法-Boost算法
- libpoco在mac平台编译详解
- Extjs+PHP 文件下载
- 常用网络工具
- swift快速入门,三分钟上手
- 浅析GLib
- Java-取得服务器当前的各种具体时间
- 磁场强度简介
- OOAD作业---设计模式---装饰者模式
- DWR学习2-回调函数异步问题