交叉编译

linux交叉编译icu

牧云@^-^@ 提交于 2020-02-21 06:54:09
Introduction to ICU The International Components for Unicode (ICU) package is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms. This package is known to build and work properly using an LFS-9.1 platform. 下载链接 http://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz tar -zxvf icu4c-57_1-src.tgz #在源码同级目录建立 mkdir icupc cd ./icupc .. /icu/source/runConfigureICU Linux/gcc make cd .. /icu/source ./configure --disable-samples -

嵌入式wince基础知识

醉酒当歌 提交于 2020-02-17 14:43:59
  因项目需要,用到手持设备的开发,手持设备搭载的是wince系统,之前多多少少接触过嵌入式编程,一直以为自己的处女开发是在Linux,没想到还是没逃出微软的“魔掌”,不开心归不开心,项目还得继续,先学习嵌入式wince的基本知识吧,为以后的开发打好基础。 什么是嵌入式系统    我现在觉得有些概念经过一段时间的沉淀,进进出出大脑多次,就能体会到一点点的不一样的味道,就像嵌入式系统,之前看一些定义,一点感觉都没有,理解不能,囫囵吞枣的感觉不好,现在有一些时间了,也接触过几个小项目,慢慢的就觉得嵌入式系统就是针对通用系统(PC)提出的针对特定应用而存在的概念,这些系统都突出某些功能,而对其他功能没有需求,甚至根本就不需要,比如我的电脑,通用型的,几乎各个功能模块它都有,显示,键盘,办公软件,等等面向的是大众人群,相对的嵌入式可能就只注重莫一方面的功能,如只注重声音播放(MP3),只需要通信(功能机)等等,所以在mp3里面根本就不需要显卡啊,在功能机上就根本不要网卡啊,这也是可裁剪的官方用词吧。   嵌入式系统分为软件和硬件部门,两个部分都是可裁剪的,硬件可以定制,同样软件也是可以定制,嵌入式操作系统亦是,比如不需要某个module。wince是嵌入式操作系统的一种,另外一种是linux,自己无知,肯定还有其他的,就知道这两个。wince裁剪一下可以出来很多知名的其他系统,但都是变种

FFmpeg ndk交叉编译, 集成到android

狂风中的少年 提交于 2020-02-14 00:15:04
1. 软件版本 1.1 ndk android-ndk-r15c 1.2 ffmepg ffmpeg-4.0.5.tar.bz2 1.3 x264 x264-stable.tar.gz 2. 编译x264静态库 tar -zxvf x264-stable.tar.gz mv x264-stable x264 vi build.sh #!/bin/bash NDK=/home/sheng/ndk/android-ndk-r15c configure() { CPU=$1 PREFIX=$(pwd)/android/$CPU HOST="" CROSS_PREFIX="" SYSROOT="" if [ "$CPU" == "armv7-a" ] then HOST=arm-linux SYSROOT=$NDK/platforms/android-21/arch-arm/ CROSS_PREFIX=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- else HOST=aarch64-linux SYSROOT=$NDK/platforms/android-21/arch-arm64/ CROSS_PREFIX=$NDK/toolchains/aarch64

根文件系统制作(一)

家住魔仙堡 提交于 2020-02-12 00:49:01
在前面的内核移植中,使用的是开发板上原有的根文件系统,这里就来讨论一下如何自己制作根文件系统。 根文件系统可以由JFFS2、YAFFS2、UBIFS等文件系统支持,这里仍就选择UBIFS文件系统来制作根文件系统。UBIFS是Unsorted Block Image File System(无序区块镜像文件系统)的缩写,是一种较新的文件系统。UBIFS作为JFFS2的后继文件系统之一,在设计与性能上均较YAFFS2、JFFS2更适合于MLC NAND FLASH存储器。Linux内核从2.6.27以后的版本都提供了对它的支持,因此实现起来比较方便。 根文件系统实际上就是Linux根目录树的一个集合,由一些特定的目录、设备节点文件、内核模块文件、库文件、命令集以及其它一些配置文件组成。这个集合最终依赖于某个类型的文件系统来实现,下面就具体来讨论基于UBIFS文件系统的根文件系统制作过程。 首先要建立一个存放根文件集合的目录,这里就在根目录下建立一个名为rootfs的目录,把整个根文件系统都放在这个目录下。接下来进入rootfs目录,并在该目录下建立根目录树的第一层目录,执行“mkdir bin sbin etc dev proc lib sys var mnt usr tmp media home”产生出这些目录。 然后进入dev目录,在该目录下需要制作两个默认的设备节点文件,分别执行

嵌入式交叉编译环境搭建

青春壹個敷衍的年華 提交于 2020-02-11 21:19:08
1.下载arm-linux-gcc文件 二选一即可: 密码:mm7t 密码: g8wp 2. 安装过程 mkdir /home/jiang/arm #创建 cp arm-linux-gcc-5.4.0.tar.gz /home/jiang/arm/ # cd /home/jiang/arm/ tar xzvf arm-linux-gcc-5.4.0.tar.gz vim /etc/profile export PATH = /home/jiang/arm/5.4.0/bin: $PATH source /etc/profile arm-linux-cc -v 来源: CSDN 作者: 未知的探索者 链接: https://blog.csdn.net/weixin_41272269/article/details/104267378

PHP的MIPS交叉编译(CC=mipsel-openwrt-linux-uclibc-gcc,LD=mipsel-openwrt-linux-uclibc-ld)

試著忘記壹切 提交于 2020-02-07 00:21:01
物联网内存吃紧,跑JVM这种内存大户肯定吃不消. 要跑还是跑C实现的服务,比如Nginx+PHP+SQLite. 比如一些家用无线路由器,系统是Linux发行版OpenWrt,内存只有64MB到128MB,单核580MHz. 而PHP内置HTTP服务器和SQLite数据库,在无线路由器里对外提供HTTP服务丝毫没有问题. 交叉编译PHP也很简单: cd /opt/miwifi/src/php-7.1.5 CC=mipsel-openwrt-linux-uclibc-gcc \ AR=mipsel-openwrt-linux-uclibc-ar \ LD=mipsel-openwrt-linux-uclibc-ld \ RANLIB=mipsel-openwrt-linux-uclibc-ranlib \ STRIP=mipsel-openwrt-linux-uclibc-strip \ ./configure \ --host=mipsel-openwrt-linux-uclibc \ --prefix=/opt/miwifi/php/7.1 \ --enable-cli \ --disable-cgi \ --disable-fpm \ --disable-phpdbg \ --disable-all \ --with-sqlite3 \ --with-pdo-sqlite \

arm交叉编译opencv-2.4.9的步骤以及出现的问题

[亡魂溺海] 提交于 2020-02-04 03:23:06
linux环境:ubuntu16.04 交叉编译工具 arm-cortexa9-linux-gnueabi (一)下载opencv2.4.9源码 下载地址: opencv (二)配置编译环境 安装cmake cmake-qt-gui (三)配置编译选项 打开cmake-gui 配置编译选项 Compilers选项中的C选择*-gcc C++选择*-g++,要找到交叉编译工具链所在位置。 find program include 编译工具的库函数(lib)的位置 点Advanced 接下来是终极配置!!不按照以下配置必然会报错!! 去掉BUILD_OPENEXR 去掉BUILD_opencv_ocl 去掉WITH_1394 去掉WITH_CUDA 去掉WITH_GSTREAMER(没见到) 去掉WITH_GTK(没见到) 去掉WITH_LIBV4L(后边有v4l这个没用不要选)(没见到) 去掉WITH_OPENCL 去掉WITH_OPENEXR 去掉WITH_TIFF 在cmake-gui中去掉BUILD_opencv_apps这一项的钩钩!!! 勾上BUILD_JASPER 勾上BUILD_JPEG 勾上BUILD_PNG 勾上BUILD_ZLIB CMAKE_C_FLAGS 设置为-O3 -fPIC CMAKE_CXX_FLAGS 设置为-O3 -fPIC CMAKE

nedata交叉编译

試著忘記壹切 提交于 2020-02-02 14:26:44
注意有的nedata源码移植后不能正常运行,可以换个版本试下 zlib export CC=aarch64-himix100-linux-gcc //它的configure不支持用CC变量来指定交叉工具链 ./configure --prefix=$PWD/_install //最后生成的库、头文件和man文件都在当前目录的_install目录下 $ make && make install uuid ./configure --target=aarch64-himix100-linux --host=aarch64-himix100-linux --prefix=$PWD/_install eudev-master ./autogen.sh ./configure --target=aarch64-himix100-linux --host=aarch64-himix100-linux --prefix=$PWD/_install make make install libuv ./autogen.sh ./configure --target=aarch64-himix100-linux --host=aarch64-himix100-linux --prefix=$PWD/_install netdata autoreconf -ivf env CPPFLAGS="-I

curl交叉编译出错

此生再无相见时 提交于 2020-02-01 05:45:23
背景:交叉编译(arm-linux-gcc)curl 库 环境:Ubuntu18.04、arm-linux-gcc 4.4.1、交叉编译 openssl 成功 这里给出一种解决思路,不一定能解决遇到的问题,可以对应着做一些尝试,具体问题再具体分析 在 交叉编译 curl 的过程中,进行到 Makefile 的配置 复制指令,改成自己的路径,放到终端中: 错误信息: 根据提示查看“ config.log ” 在 main 的上方 ,大概就是错误的具体信息 /usr/local/openssl/arm_openssl/include: file not recognized: Is a directory collect2: ld returned 1 exit status /usr/local/openssl/arm_openssl/include: 没有认出文件,是一个目录(路径) 仔细分析一下,写一个路径前面要加 -I(大写 i )或者 -L,可参考: gcc -I -i -L -l 参数区别 问题就在这里了 修改后重新配置,成功,各个参数都有了值 到这里就结束了,可能遇到的问题不太一样,可以按照这个思路尝试一下 来源: CSDN 作者: GeYi1998 链接: https://blog.csdn.net/weixin_44023406/article/details

使用CMake交叉编译Arm Linux程序

自古美人都是妖i 提交于 2020-01-31 03:17:07
我们平常使用CMake时,主要是在x86或x86_64平台上,其实CMake在2.6版本后就已经支持交叉编译了,下面就来看下如何使用CMake进行Arm Linux程序的交叉编译。 一 建立工程 按照如下结构体建立一个简单工程 main.c内容如下, # include <stdio.h> int main ( void ) { printf ( "hello world\n" ) ; return 0 ; } CMakeLists.txt内容如下, cmake_minimum_required ( VERSION 3.5 ) project ( demo ) add_executable ( main main . c ) 这是常规的工程,编译的话只要cd到build目录下执行 cmake .. && make 就可以了。 二 交叉编译 现在希望最终编译的程序是运行在arm linux系统上的,这就需要交叉编译。 1. 设置系统和工具链 对于交叉编译,CMake并不知道目标系统是什么,所以需要设置一些CMake变量来告知CMake, CMAKE_SYSTEM_NAME:即目标系统名,这里是Linux CMAKE_SYSTEM_PROCESSOR :目标系统的处理器名,这里是arm 对于工具链,则是通过下面2个变量来定位, CMAKE_C_COMPILER:C编译器的可执行文件名称