当前位置: 首页 > wzjs >正文

可以做热图的在线网站我要推广网

可以做热图的在线网站,我要推广网,深圳网页制作,凡客诚品官网商城首页目录 1. Ubuntu中编译 2. NDK环境配置 3. 编译 4. 安装 这部分主要是为了得到libudev(因为原来的libudev已经不更新了),eudev的下载地址如下: https://github.com/gentoo/eudev 相应的代码最好是在Ubuntu中先编译通过&#…

目录

1. Ubuntu中编译

2. NDK环境配置

3. 编译

4. 安装


这部分主要是为了得到libudev(因为原来的libudev已经不更新了),eudev的下载地址如下:

https://github.com/gentoo/eudev

相应的代码最好是在Ubuntu中先编译通过(即获取到x86版本的),以版本3.2.14为例。

1. Ubuntu中编译

如果需要在NDK中编译通过,最好现在Linux中编译通过。

  • 安装必要的工具,
sudo apt-get install autoconf automake libtool
  • 安装libusb1.0
sudo apt install libusb-1.0-0-dev
  • 执行autogen

autogen.sh将会检测当前系统是否满足源代码包依赖项和工具库,执行相应的检查和更新操作,并根据configure.ac文件中的配置,生成Makefile文件,以便后续编译、安装和部署。

./autogen.sh
  • 执行configure

configure是一个脚本,一般由Autoconf工具生成,它会检验当前的系统环境,看是否满足安装软件所必需的条件:比如当前系统是否支持待安装软件,是否已经安装软件依赖等。configure脚本最后会生成一个Makefile文件。

这一步如果有错误必须要解决,不然后面编译会出错。

  • 执行make

一般linux发行版本内是没问题的。

2. NDK环境配置

首先需要下载NDK,NDK在r17c版本前是支持gcc,后面的都是clang,而第三方库很多都是Linux上的,使用gcc编译,所以原则上是优先下载r17c的版本。

复制autogen.sh,重命名为envsetup.sh

#!/bin/shexport ROOT=~/Project
export NDK=$ROOT/android-ndk-r17cexport TARGET=arm-linux-androideabi
export ARCH=arm
export HOST=$TARGET
export SYSROOT=$NDK/sysrootexport TOOLCHAIN=$NDK/toolchains/$TARGET-4.9/prebuilt/linux-x86_64
export API=26export CC=$TOOLCHAIN/bin/$TARGET-gcc
export CXX=$TOOLCHAIN/bin/$TARGET-g++
#export CPP="$TOOLCHAIN/bin/$TARGET-gcc -E"
export AR=$TOOLCHAIN/bin/$TARGET-ar
export AS=$CC
export LD=$TOOLCHAIN/bin/$TARGET-ld
export RANLIB=$TOOLCHAIN/bin/$TARGET-ranlib
export STRIP=$TOOLCHAIN/bin/$TARGET-stripexport CFLAGS="--sysroot=$NDK/platforms/android-$API/arch-$ARCH \-D__ANDROID_API__=$API \-I$SYSROOT/usr/include \-I$SYSROOT/usr/include/$TARGET \-fPIC -Wno-attributes"
export CXXFLAGS=$CFLAGS
#export CPPFLAGS=$CFLAGS
export LDFLAGS="-pthread -lc -L\"$SYSROOT/usr/lib\""export PATH=$PATH:$TOOLCHAIN/bin/
  • TARGET : 主机的类型,可以参考下面的链接

将 NDK 与其他构建系统配合使用  |  Android NDK  |  Android Developers

可以进NDK目录android-ndk-r17c/toolchains内查看当前NDK支持的类型,例如:

这里有6个TARGET类型(即带版本4.9的那6个文件夹) ,根据硬件平台选择,Zero3的是arm-linux-androideabi

  • ARCH:目标CPU构架,例如在NDK目录中android-ndk-r17c/platforms/android-24可以查到支持的类型

  • HOST:用于指定交叉编译的宿主平台,这里与目标平台一致。
  • SYSROOT:设置系统根目录
  • TOOLCHAIN:指定工具链的路径,这里使用的是GCC 4.9版本,适用于Linux x86_64平台。
  • API:指定Android最小的API等级
  • CC:设置C编译器。
  • CXX:设置C++编译器。
  • AR:设置创建静态库的ar工具。
  • AS:设置汇编器
  • LD:设置链接器
  • RNDLIB:设置用于生成库索引的ranlib工具。
  • STRIP:设置用于剥离符号的strip工具。
  • CFLAGS:设置C编译器的标志
  • CXXFLAGS:设置C++编译器的标志

  • LDFLAGS:设置链接器的标志

3. 编译

以此执行:

./envsetup.sh
./autogen.sh --host $HSOT
./configure --host $HOST --target $TARGET --prefix $SYSROOT/usr/local
make

出现编译错误。

  • error: 'LINE_MAX' undeclared (first use in this function)

缺少LINE_MAX的定义,在src/shared/missing.h添加

#ifndef LINE_MAX
#define LINE_MAX 2048
#endif
  • error: 'program_invocation_short_name' undeclared (first use in this function)
     

在src/shared/missing.h添加

#ifndef program_invocation_short_name
#define program_invocation_short_name "depmod"
#endif
  • fatal error: selinux/selinux.h: No such file or directory

把selinux关掉

./configure --host $HOST --target $TARGET --disable-selinux --prefix $SYSROOT/usr/local
  • error: 'RLIMIT_NLIMITS' undeclared here (not in a function)

在src/shared/missing.h添加

#ifndef RLIMIT_NLIMITS
#define RLIMIT_NLIMITS 16
#endif
  • error: 'IPTOS_LOWCOST' undeclared here (not in a function)

在src/shared/missing.h添加

#ifndef IPTOS_LOWCOST
#define	IPTOS_LOWCOST		0x02
#endif
  • fatal error: blkid/blkid.h: No such file or directory

把blkid关掉

./configure --host $HOST --target $TARGET --disable-selinux --disable-blkid --prefix $SYSROOT/usr/local
  • error: undefined reference to 'get_current_dir_name'

在src/shared/missing.h添加

  • error: 'SG_FLAG_LUN_INHIBIT' undeclared (first use in this function)

在src/shared/missing.h添加

#ifndef SG_FLAG_LUN_INHIBIT
#define SG_FLAG_LUN_INHIBIT 2   /* default is to put device's lun into */
#endif
  • error: undefined reference to 'is_fido_security_token_desc'

运行make clean清一下

  • warning: implicit declaration of function '__bswap_16' [-Wimplicit-function-declaration]

将Ubuntu中的usr/include/byteswap.h拷贝到NDK的sysroot/usr/include中,将Ubuntu中的usr/include/bits/byteswap.h、types.h、wordsize.h、timesize.h、typesizes.h、time64.h拷贝到NDK的sysroot/usr/include/bits/中

然后在android-ndk-r17c/sysroot/usr/include/bits/byteswap.h中添加

# define __GNUC_PREREQ(maj, min)        1

4. 安装

在源代码external文件夹内新家一个文件夹libudev,将libudev.so拷贝到这个文件夹内,再新建Android.bp文件。

cc_prebuilt_library_shared {name: "libudev",//proprietary: true,//product_specific: true,target: {android_arm: {srcs: ["libudev.so"],},},strip: {none:true,},
}

在device/softwinner/apollo/apollo_p2.mk文件中添加

PRODUCT_PACKAGES += libudev.so
PRODUCT_PACKAGES += libusb.so
http://www.dtcms.com/wzjs/308485.html

相关文章:

  • 济南信息化网站哪家网络公司比较好
  • 苏州知名高端网站建设公司seo培训教程视频
  • 现在手机网站用什么做的好宁波seo资源
  • mcms怎么做网站广州头条今日头条新闻
  • 网上做网站怎么赚钱广告联盟有哪些
  • 做网站膜网站怎么做市场营销培训
  • 佛山企业网站建设技术关键词如何排名在首页
  • 个人网站怎么做湖北百度关键词排名软件
  • 蓝色系网站设计小米的推广软文
  • 哪些网站可以找到做药人的信息盐城seo优化
  • 深圳网络公司做网站北京seo关键词排名
  • 设计投稿的网站有什么网上竞价
  • 站内推广和站外推广的区别今日头条淄博新闻
  • 河北邯郸seo网站建设网站优化文大侠seo博客
  • 旅游网站开发现状公司推广文案
  • 满洲里建设局网站google搜索引擎入口下载
  • 做网站的软件page360地图下载最新版
  • 利用小说网站做本站优化韩国搜索引擎排名
  • 丽江网络推广公司关键词推广seo怎么优化
  • 在ps做网站分辨率96可以吗b2b模式的电商平台有哪些
  • 熊掌号接合网站做seo百度刷自己网站的关键词
  • 北京网站建设石榴汇网站seo 优化
  • 常见的微网站平台有哪些百度推广怎么收费标准案例
  • 网站的前期调研怎么做新开发的app怎么推广
  • 厦门黄页seo关键词排名优化方法
  • 服饰网站建设技术方案风云榜百度
  • 视屏网站的审核是怎么做的流量推广平台
  • 做竞争小的网站北京网络推广有哪些公司
  • 做网站工作辛苦吗单页面seo搜索引擎优化
  • 网站程序怎么做pc网站优化排名软件