geos库交叉编译生成ARM平台库

版本号信息:

GEOS:geos-3.4.2.tar.bz2(http://trac.osgeo.org/geos/)
CPU:ARM
编译器:arm-linux 4.2.2

1、  解压源代码包geos-3.4.2.tar.bz2

# tar xvf geos-3.4.2.tar.bz2

2、  在解压产生的geos-3.4.2/文件夹下,改动configure文件693行,配置成成交叉编译模式

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzY4NjAxOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

3、 生成Makefile文件。在geos-3.4.2/文件夹下运行配置

./configure --build=arm-linux --host=arm-linux --target=arm-linux CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc CXX=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-g++ LD=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ld AR=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ar AS=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-as LDFLAGS="-L/usr/local/arm/4.2.2-eabi/usr/lib -lpthread -lrt -rdynamic" CXXFLAGS="-g -rdynamic -I/usr/local/arm/4.2.2-eabi/usr/include"

:以上命令为一行。

4、在geos-3.4.2/文件夹下运行make命令就可以

:在第3步中,最后会产生例如以下,,这里不影响编译

config.status: executing libtool commands
Swig: false
Python bindings: false
Ruby bindings: false
PHP bindings: false 

:攻克了例如以下编译错误:

../src/.libs/libgeos.so: undefined reference to `std::auto_ptr<geos::geom::Envelope>::auto_ptr(std::auto_ptr_ref<geos::geom::Envelope>)'
../src/.libs/libgeos.so: undefined reference to `_ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv'
../src/.libs/libgeos.so: undefined reference to `std::auto_ptr<geos::geom::Envelope>::~auto_ptr()'

时间: 2024-08-12 05:37:21

geos库交叉编译生成ARM平台库的相关文章

arm平台编译动态库报 relocation R_ARM_MOVW_ABS_NC 错误解决

编译一个能在 arm 平台上用的动态库,结果报错如下: relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC ./obj/xxx.o: could not read symbols: Bad value collect2: error: ld returned 1 exit status 其实错误信息已经给出解决

W5500 ARM mbed 库发布

WIZnet 是 ARM mbed的官方合作伙伴,并为 mbed 发布了W5500库.这个库支持 W5100, W5200 及 W5500,你可以通过SPI将你的  WIZ550io 连接mbed平台.以下详解了如何在mbed平台上使用WIZnet以太网库.我们用 几个mbed平台测试过,如果你有任何问题,可以在Wiznet mbed社区留言. 更多WIZnet动态,请关注WIZnet官方微博:http://weibo.com/wiznet2012 W5500 ARM mbed 库发布

gcc链接g++编译生成的静态库和动态库的makefile示例

使用c++开发程序或者库时,将库提供给其他人使用. 然而使用者是使用c开发的程序,链接g++编译生成的库时,于链接gcc生成的库,有所不同. 首先是静态库,以链接g++编译生成的libmylib.a为例子 mylib依赖于pthread,rt,math库,链接时必须放在mylib之后. 同时-Wl,--no-as-needed -ldl添加在末尾是必须的. arm和x86有些不同,就是arm的gcc不会自动链接数学库math,需要手动添加链接. 1 CC=arm-linux-gnueabihf-

【金码坊AOS开发平台】完善了AOS标签库,和标准标签库完美兼容了

[金码坊AOS开发平台]今天①完善了AOS标签库,和标准标签库完美兼容了.②新开发了根据子页面动态生成主页面的二级导航菜单功能.#AOS开发平台#

android so库多平台引用第三方so库,及多平台编译

1, eclipse 新建android项目,添加jni目录,配置ndk 2,jni目录下新建第三方库的引用源文件目录,包含各个平台的so包以及对应的头文件 3,配置Android.mk 第三方库引用的配置文件如: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := 引用库别名 LOCAL_SRC_FILES :=$(TARGET_ARCH_ABI)/引用库文件名称.so include $(PREBUILT_SH

linux下arm平台Qt编译环境搭建与解析

一.概述: ???? 我们知道QTcreator.这仅仅是个IDE,他包含了一个编译器--qmake.这两者的关系与codeblocks和g++的关系一样,首先要明确这些. ???? 而我们在linux下搭建arm平台的QT编译环境,基本的是要使用适合arm的qmake.正如我们编译在arm上使用c++程序时要用arm-none-linux-gnueabi-g++一样.而qmake仅仅是我们使用的工具,自然不须要也不能换.所以我们仅仅要使用arm-none-linux-gnueabi-g++编译

基于oSIP开源库PartySIP服务器之uClibc库的移植和配置[二]

*************************************************************************************************************************** 作者:EasyWave                                                时间:2014.09.19 类别:Linux应用-SIP代理服务器PartySIP         声明:转载,请保留链接 注意:如有

readline-6.3 之arm平台交叉编译

近期须要弄个CLI命令接口程序,初步设想是须要支持历史命令翻阅,tab键命令补全这种一个东西.经查阅相关文档,深耕百度一番!(google近期不太正常) 实在恼火.发现readline果真是个好东西,于是将其先编译成arm平台. ./configure CC=arm-linux-gcc --host=arm-linux CROSS_COMPILE=arm-linux-gcc 配置,起初发如今configure的时候,会自己主动编译一个test程序,而交叉编译出来的程序是无法载x86上执行的,所以

关于静态与动态编译arm平台程序的比较

由于最近弄个console程序,调用了readline,ncurses库,这两个动态库加起来有四百多k,而程序其实很小,其他地方也没使用到这两个库 所以想静态编译看看console程序有多大. #arm-linux-gcc cli.c -o console libreadline.a  libncurses.a #ls -l total 1932 -rwxrwxr-x 1 root root   8427 Jul  7 15:19 cli -rw-r--r-- 1 root root   664