SylixOS 系统移植库第三方库流程 (其他系统交叉编译应该类似)
来源:互联网 发布:java反射到底是什么 编辑:程序博客网 时间:2024/05/29 11:36
第一步
如果是用autotool工具配置的项目,使用以下脚本配置:
#!/bin/sh
export CC=arm-sylixos-eabi-gcc
export CXX=arm-sylixos-eabi-g++
export SYLIXOS_BASE_PATH=/home/rootqt/SylixOS/sylixos-base
export LDFLAGS="-mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfpv3 -mno-unaligned-access -fPIC -shared -L$SYLIXOS_BASE_PATH/libsylixos/Debug -L$SYLIXOS_BASE_PATH/libcextern/Debug -L/home/rootqt/SylixOS/lib -nostdlib -lcextern -lvpmpdm -lm -lgcc -ldsohandle"
export CFLAGS="-mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfpv3 -nostdlib -Wl,-shared -fPIC -DSYLIXOS -DSYLIXOS_LIB -fsigned-char -fno-short-enums -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include/network -I$SYLIXOS_BASE_PATH/libcextern/libcextern/include -I/home/rootqt/SylixOS/include"
export CXXFLAGS="-mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfpv3 -nostdlib -fexceptions -frtti -Wl,-shared -fPIC -DSYLIXOS -DSYLIXOS_LIB -fsigned-char -fno-short-enums -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include -I$SYLIXOS_BASE_PATH/libsylixos/SylixOS/include/network -I$SYLIXOS_BASE_PATH/libcextern/libcextern/include"
export LDSHAREDLIBC="$LDFLAGS"
export PKG_CONFIG_PATH="-I/home/rootqt/SylixOS/include"
export PKG_CONFIG_LIBDIR="-L/home/rootqt/SylixOS/lib"
export LIBXML2_CFLAGS="-I/home/rootqt/SylixOS/include"
export LIBXML2_LIBS="-L/home/rootqt/SylixOS/lib"
./configure --prefix=/opt/arm-sylixos-freexl --host=arm-sylixos-eabi --includedir=/home/rootqt/SylixOS/include --libdir=/home/rootqt/SylixOS/lib
第二步
替换libtool脚本为如下脚本:(作用是直接使用调用脚本的命令编译,不使用libtool的实际功能,另外,筛选掉的选项可能还存在,出错的时候自己添加,比如版本信息,不同的库可能会增加一个不一样的,如|| [ $1 = "2:0:1" ]的格式筛选掉就行了)
#!/bin/bash
CMD=""
while [ $# -ne 0 ]
do
if [ $1 = "--mode=link" ] || [ $1 = "--tag=CC" ] || [ $1 = "--tag=CXX" ] || [ $1 = "-module" ] || [ $1 = "--silent" ] || [ $1 = "-avoid-version" ] || [ $1 = "-release" ] || [ $1 = "-no-undefined" ] || [ $1 = "--mode=compile" ] || [ $1 = "--tag=disable-static" ] || [ $1 = "-version-info" ] || [ $1 = "8:0:1" ] || [ $1 = "3.6.2" ] || [ $1 = "2:0:1" ] || [ $1 = "11:7:9" ] || [ $1 = "-lpthread" ] || [ $1 = "-ldl" ] || [ $1 = "-rpath" ] || [ $1 = "/home/rootqt/SylixOS/lib" ]; then ""
else
CMD=$CMD" "$1
fi
shift
done
# CMD=$CMD" "-ldsohandle
echo "my_libtool: "$CMD
$CMD
- SylixOS 系统移植库第三方库流程 (其他系统交叉编译应该类似)
- 基于FS4412嵌入式系统移植(6) glib库的交叉编译与移植
- 交叉编译库移植
- python和其第三方库交叉编译过程
- 第三方支付系统--支付流程
- 编译第三方应用到系统中
- java 第三方库common系统详解
- windows系统安装python第三方库
- Android日志系统第三方库------Logger
- 基于FS4412嵌入式系统移植(7) sqlite3交叉编译与移植
- android移植第三方库
- arm第三方库移植
- arm第三方库移植
- 技能库--第三方账户登录系统设计(86)
- osgGIS第三方库lua在windows系统下的编译方法
- SylixOS移植Redis库总结
- Android系统移植1--创建ARM-Linux交叉编译环境
- 交叉编译VIM并移植到ARM嵌入式Linux系统
- Scala学习(六)---Scala对象
- tf_2_Session会话控制
- FPGA计算性能优化-数据运行优化2
- 参与开源项目,如何Fork项目为自己所用?
- PullToRefreshListView
- SylixOS 系统移植库第三方库流程 (其他系统交叉编译应该类似)
- 图数据库:1 简介
- Ubuntu9.04版本更新源
- DevGuide-设计可重用的api以节省时间
- 我的SfM学习资料
- Idea导入新项目
- compile build 区别
- MyBatis学习笔记(三)——映射
- 事件类型