交叉编译POCO-1.9.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
交叉编译POCO-1.9.0_第1张图片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
如图
交叉编译POCO-1.9.0_第2张图片
添加iodbc头文件包含目录
INCLUDE += -I/jfc_libs/arm/iodbc/include
如图
交叉编译POCO-1.9.0_第3张图片
报错
include/Poco/SQL/MySQL/Binder.h:24:10: fatal error: mysql.h: No such file or directory
修改SQL/MySQL# vi Makefile
结果如下:
交叉编译POCO-1.9.0_第4张图片修改SQL/PostgreSQL# vi Makefile
添加postgresql的头文件包含路径和库文件的搜索路径
INCLUDE += -I/jfc_libs/arm/postgresql/include
-L/jfc_libs/arm/postgresql/lib
如图
交叉编译POCO-1.9.0_第5张图片

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

你可能感兴趣的:(交叉编译,linux,poco,arm)