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

衡水网站优化怎么知道网站是谁做的

衡水网站优化,怎么知道网站是谁做的,好玩的手机网页游戏,xampp 做网站版权信息#xff1a;本文为本人原创#xff0c;欢迎转载#xff0c;但请著明出处#xff0c;并保留本版权信息。Android NDK编译脚本编写起来还是是比较简单条理的#xff0c;然而它的语法和传统的linux GNU Make编译脚本的编写似乎有很大的不同#xff0c;这让习惯了GNU…版权信息本文为本人原创欢迎转载但请著明出处并保留本版权信息。Android NDK编译脚本编写起来还是是比较简单条理的然而它的语法和传统的linux GNU Make编译脚本的编写似乎有很大的不同这让习惯了GNU Makefile的用户很不习惯。有许多人会用它但对其工作原理却不理解笔者甚至一度误认为那是一套全新脚本语言。我将在后文中对这一编译管理系统做一些分析试着分析一下它和传统GNU Makefile的关系。本文假设您已经拥有 Linux命令和GNU Makefile的基础知识当然您也可以边阅读边查找参考相关的知识。参考资料2是徐海兵先生整理的 GNU Makefile 中文手册推荐英文不太好的朋友拿来作为参考。这篇文章是对自己前段时间所学知识的一个记录整理以期与大家互相交流希望朋友们不要吝于来信指出本文的错漏之处或者你们不同理解(绝非客气真的期望能收到您的信件我的邮箱 techres#163.com请把 # 换成 )。Android NDK 的编译脚本系统实际上并不是什么新东西就是对 GNU MakeFile 系统的封装。Android NDK 自带了很多 .mk  文件(保存在ndk的 NDK_ROOT/build 目录中)文件中预定义了很多 Make  脚本函数和变量以供用户编写自己的编译脚本时使用。另外NDK为所有应用统一提供了一个固定的编译入口--即大家熟悉的ndk-build。我们首先从每个应用编译时都需要用到的编译入口开始分析。一、ndk-build分析(一)、脚本内容分析该文件存在于ndk安装根目录中实际上是一个 shell 脚本。其有效内容如下PROGDIRdirname $0PROGDIRcd $PROGDIR pwd# If GNUMAKE is defined, check that it points to a valid fileif [ -n $GNUMAKE ] ; thenABS_GNUMAKEwhich $GNUMAKE 2 /dev/nullif [ $? ! 0 ] ; thenecho ERROR: Your GNUMAKE variable is defined to an invalid name: $GNUMAKEecho Please fix it to point to a valid make executable (e.g. /usr/bin/make)exit 1fiGNUMAKE$ABS_GNUMAKEelse# Otherwise, use make and check that it is availableGNUMAKEwhich make 2 /dev/nullif [ $? ! 0 ] ; thenecho ERROR: Cannot find make program. Please install Cygwin make packageecho or define the GNUMAKE variable to point to it.exit 1fifi# On Windows, when running under cygwin, check that we are# invoking a cygwin-compatible GNU Make binary. It is unfortunately# common for app developers to have another non-cygwin compatible#if [ $OSTYPE cygwin ] ; thenGNUMAKEcygpath -u $GNUMAKEPROGDIR_MIXEDcygpath -m $PROGDIRCYGWIN_GNUMAKE$GNUMAKE -f $PROGDIR_MIXED/build/core/check-cygwin-make.mk 21if [ $? ! 0 ] ; thenecho ERROR: You are using a non-Cygwin compatible Make program.echo Currently using: cygpath -m $GNUMAKEecho echo To solve the issue, follow these steps:echo echo 1. Ensure that the Cygwin make package is installed.echo    NOTE: You will need GNU Make 3.81 or later!echo echo 2. Define the GNUMAKE environment variable to point to it, as in:echo echo      export GNUMAKE/usr/bin/makeecho echo 3. Call ndk-build again.echo exit 1fifi$GNUMAKE -f $PROGDIR/build/core/build-local.mk $下面我们对这些有效代码逐一进行分析PROGDIRdirname $0PROGDIRcd $PROGDIR pwd在GNU makefile中两个反引号相当于 shell  函数反引号括起来的内容相当于 shell 函数的参数。而shell函数的功能就是调用操作系统的命令。PROGDIRdirname $0linux 命令 dirname, 功能是获取后面参数的路径。例如#dirname ../../../ndk-build执行的结果是../../..。顺便提一下这里不能用pwd命令pwd 命令是获得当前路径获取的是当前路径的绝对路径。所以上面两条语句的结果就是在 PROGDIR 变量中保存 ndk-build 所在的路径。有了这两条语句之后就可以在任何位置执行 ndk-build 而不必非要在 ndk 根目录中执行。再之后的两段语句是用来确定不同平台下正确的 make 工具。# If GNUMAKE is defined, check that it points to a valid fileif [ -n $GNUMAKE ] ; thenABS_GNUMAKEwhich $GNUMAKE 2 /dev/nullif [ $? ! 0 ] ; thenecho ERROR: Your GNUMAKE variable is defined to an invalid name: $GNUMAKEecho Please fix it to point to a valid make executable (e.g. /usr/bin/make)exit 1fiGNUMAKE$ABS_GNUMAKEelse# Otherwise, use make and check that it is availableGNUMAKEwhich make 2 /dev/nullif [ $? ! 0 ] ; thenecho ERROR: Cannot find make program. Please install Cygwin make packageecho or define the GNUMAKE variable to point to it.exit 1fifi# On Windows, when running under cygwin, check that we are# invoking a cygwin-compatible GNU Make binary. It is unfortunately# common for app developers to have another non-cygwin compatible#if [ $OSTYPE cygwin ] ; thenGNUMAKEcygpath -u $GNUMAKEPROGDIR_MIXEDcygpath -m $PROGDIRCYGWIN_GNUMAKE$GNUMAKE -f $PROGDIR_MIXED/build/core/check-cygwin-make.mk 21if [ $? ! 0 ] ; thenecho ERROR: You are using a non-Cygwin compatible Make program.echo Currently using: cygpath -m $GNUMAKEecho echo To solve the issue, follow these steps:echo echo 1. Ensure that the Cygwin make package is installed.echo    NOTE: You will need GNU Make 3.81 or later!echo echo 2. Define the GNUMAKE environment variable to point to it, as in:echo echo      export GNUMAKE/usr/bin/makeecho echo 3. Call ndk-build again.echo exit 1fifi最后一条语句是调用$GNUMAKE -f $PROGDIR/build/core/build-local.mk $这是真正开始执行 make 指定 Makefile 为 build-local.mk 文件。同时将 ndk-build 的所有参数($)原封不动地都传递进去。总之ndk-build 是对 make 指令的封装并不对各个参数作处理具体参数原封不动地传给 make 和Makefile。由此可见ndk-build只是对make命令的一个封装为编译提供一个统一的且适应性更强的编译入口。(二)、技巧二、 build-local.mk文件分析一、Android.mk文件内容分析典型的 Android.mk 文件一般会包含如下内容LOCAL_PATH : $(call my-dir)include $(CLEAR_VARS)下面逐一对之作分析1、LOCAL_PATH : $(call my-dir)宏 my-dir 定义在 difinitions.mk 文件中其功能是获取当前文件所在的路径。2、include $(CLEAR_VARS)在文件 build-all.mk 文件中有如下定义CLEAR_VARS                : $(BUILD_SYSTEM)/clear-vars.mkbuild/core/clear-vars.mk 内容如下# this file is included repeatedly from Android.mk files in order to clean# the module-specific variables from the environment,NDK_LOCAL_VARS : \LOCAL_MODULE \LOCAL_SRC_FILES \LOCAL_C_INCLUDES \LOCAL_CFLAGS \LOCAL_CXXFLAGS \LOCAL_CPPFLAGS \LOCAL_LDFLAGS \LOCAL_LDLIBS \LOCAL_ARFLAGS \LOCAL_CPP_EXTENSION \LOCAL_STATIC_LIBRARIES \LOCAL_STATIC_WHOLE_LIBRARIES \LOCAL_SHARED_LIBRARIES \LOCAL_MAKEFILE \LOCAL_ALLOW_UNDEFINED_SYMBOLS \LOCAL_ARM_MODE \LOCAL_ARM_NEON \LOCAL_DISABLE_NO_EXECUTE \$(call clear-src-tags)$(call clear-vars, $(NDK_LOCAL_VARS))注释中说得很清楚该文件的功能就是将一些模块内部的变量的内容清除。最后两条语句是实际的清除操作$(call clear-src-tags)宏 clear-src-tags 没有搜到其定义不知道其确切功能是什么。不过从名字来看应该是对文件名的tags进行清理的。例如编译是为文件名加上的 .neon .arm 等等tags。最后那条语句是真正清除上面罗列出的这些变量的值。从上面的列表中可以看出都是一些 LOCAL 变量。【参考资料】1、GNU Makefile 英文手册http://www.gnu.org/software/make/manual/
http://wiki.neutronadmin.com/news/59024/

相关文章:

  • idea可以做网站吗心馨人生珠海网站建设
  • 企业网站设计要点关键词全网搜索
  • 网站建设 工作计划wordpress图片灯箱效果修改
  • 网站制作项目专门做壁纸的网站
  • 如何做企业网站推广视频网站用php做
  • 想做网站哪个公司比较好简单的网页
  • ip地址直接访问网站安平县哪个做网站的好
  • 网站seo方案案例德州 网站建设
  • flash网站方案信用网站建设工作总结
  • 广州企业网站哪家好html制作新闻信息展示页面
  • 上海域名网站个人网站可以做百度竞价
  • 大连哪家网站技术开发公司好郑州网站建设up188
  • 米拓建站官网怎么用不了淮安维度网站建设
  • 网站排名seo培训软件设计师工资一般多少
  • 电子商务毕业设计网站易尔通做网站怎么样
  • 大型做网站物流网站建设公司
  • 怎么给网站做搜索功能wordpress极简风
  • 做儿童交互网站龙岩网站建设全包
  • 十大经典口碑营销案例重庆 seo
  • 青岛移动网站建设电子商务网站建设策划书的流程
  • 青岛大型网站建设琼海网站建设公司
  • 网站开发广东wordpress 删除后台菜单
  • 服务器能放多少个网站济南网站建设工作
  • 小学文化学网站开发中企动力科技是国企吗
  • 杭州酒店网站建设方案如何在自己网站做直播
  • 做一个自己的网站网站建议怎么写
  • 企业网站上的工资表怎么做cn域名与com域名
  • 网站建设公司的公司微信开发者社区
  • 合肥哪里有建站公司某些网站域名解析错误
  • 备案时暂时关闭网站医院为什么要做门户网站建设