交叉编译POCO-1.9.0

4 篇文章 0 订阅
4 篇文章 0 订阅

编译工具:arm-linux-gnueabihf (不能使用arm-linux-gnueabi来编译)
(本文在实践过程中,搜索翻阅过网上多篇文章,到底哪篇是原创,也不清楚了。
编译目的,我是为了编译可使用在树莓派上的poco1.9.0)

编译工具:arm-linux-gnueabihf(不能使用arm-linux-gnueabi)
下载源码: poco-develop.zip
解压缩:unzip poco-develop.zip
./configure --config=ARM-Linux --no-tests --no-samples --omit=Data/ODBC --prefix=/jfc_libs/arm/Poco1.9.0 --static --shared

修改poco-develop/build/config# vi ARM-Linux
CC = $(TOOL)-gnueabihf-gcc
CXX = $(TOOL)-gnueabihf-g++
LINK = $(CXX)
LIB = $(TOOL)-gnueabihf-ar -cr
RANLIB = $(TOOL)-gnueabihf-ranlib
SHLIB = ( C X X ) − s h a r e d − W l , − s o n a m e , (CXX) -shared -Wl,-soname, (CXX)sharedWl,soname,(notdir $@) -o $@
SHLIBLN = $(POCO_BASE)/build/script/shlibln
STRIP = $(TOOL)-gnueabihf-strip
DEP = $(POCO_BASE)/build/script/makedepend.gcc
SHELL = sh
RM = rm -rf
CP = cp
MKDIR = mkdir -p
在这里插入图片描述Make
建立链接,否则会报openssl/opensslv.h找不到
建立链接,否则会报-lssl找不到
ln -s -d /jfc_libs/arm/openssl/include/openssl/ /usr/lib/gcc-cross/arm-linux-gnueabihf/6/include/openssl

ln -s -f /jfc_libs/arm/openssl/lib/libcrypto.a /usr/lib/gcc-cross/arm-linux-gnueabihf/6/libcrypto.a
ln -s -f /jfc_libs/arm/openssl/lib/libssl.a /usr/lib/gcc-cross/arm-linux-gnueabihf/6/libssl.a
ln -s -f /jfc_libs/arm/openssl/lib/libcrypto.so /usr/lib/gcc-cross/arm-linux-gnueabihf/6/libcrypto.so
ln -s -f /jfc_libs/arm/openssl/lib/libssl.so /usr/lib/gcc-cross/arm-linux-gnueabihf/6/libssl.so
ln -s -f /jfc_libs/arm/openssl/liblibcrypto.so.1.0.0 /usr/lib/gcc-cross/arm-linux-gnueabihf/6/libcrypto.so.1.0.0
ln -s -f /jfc_libs/arm/openssl/lib/libssl.so.1.0.0 /usr/lib/gcc-cross/arm-linux-gnueabihf/6/libssl.so.1.0.0

编译过程中
ODBC.make:63: *** No ODBC library found. Please install unixODBC or iODBC or specify POCO_ODBC_LIB or set the correct libodbc libra
ry path by using --odbc-lib as option to ‘configure’ script and try again. Stop.

修改SQL/ODBC# vi ODBC.make
指定iodbc库文件位置
POCO_ODBC_LIB = /jfc_libs/arm/iodbc/lib
如图
在这里插入图片描述
添加iodbc头文件包含目录
INCLUDE += -I/jfc_libs/arm/iodbc/include
如图
在这里插入图片描述
报错
include/Poco/SQL/MySQL/Binder.h:24:10: fatal error: mysql.h: No such file or directory
修改SQL/MySQL# vi Makefile
结果如下:
在这里插入图片描述修改SQL/PostgreSQL# vi Makefile
添加postgresql的头文件包含路径和库文件的搜索路径
INCLUDE += -I/jfc_libs/arm/postgresql/include
-L/jfc_libs/arm/postgresql/lib
如图
在这里插入图片描述

如上内容修改之后,再make
应该可以编译成功。
在这里插入图片描述
Make install
在这里插入图片描述
可见安装结果
在这里插入图片描述
问题:
Poco1.9.0的安装并没有将源码中的data目录下的头文件安装到安装目录。需要手动加入,或有时间修改一下安装部分代码。
第一遍pocodata,pocodatamysql竟然没有编译出来
发现:LibPocoData已经变成了LibPocoSQLd,PocoDataMySQL已经变成了库libPocoSQLMySQL,所以上面的那相Data目录应该是不需要了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值