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

国外域名拍卖网站分类 网站模板

国外域名拍卖网站,分类 网站模板,开发公司承担物业费的规定,wordpress行间距一.CMake语法 CMake语法非常多,我们知道如何导入静态库和动态库以及最基础的使用,目前是够用的。其它方面则根据实际项目同步学习。 1.1.基础语法-常用 cmake_minimum_required:指定cmake最小版本include_directories:引入&…

一.CMake语法

  • CMake语法非常多,我们知道如何导入静态库和动态库以及最基础的使用,目前是够用的。其它方面则根据实际项目同步学习。

1.1.基础语法-常用

  • cmake_minimum_required:指定cmake最小版本
  • include_directories:引入(原生代码或库的)头文件
  • add_library:主要作用:将指定的源文件生成链接文件,然后添加到工程中去
  • find_library:引入NDK中的标准库
  • target_link_libraries:将预构建库关联到原生库
  • aux_source_directory:查找在某个路径下的所有源文件

1.2.原生库导入

  • 有两种方案
    • 1.直接在target_link_libraries添加;
    • 2.先使用find_library,然后结合target_link_libraries;

1.3.从原生代码构建一个原生库

  • 使用add_library和target_link_libraries配合使用;
    • 如:假设调用System.loadLibrary(“practiceffmpegplayer”),则在CMakeLists.txt中使用add_library(practiceffmpegplayer SHARED native-lib.cpp),然后使用target_link_libraries(practiceffmpegplayer);
    • System.loadLibrary定义的库名称必须要和add_library中的第一个参数名称一样;

1.4.动态库或静态库导入

  • 分3步
    • 1.指定静态库或动态库的头文件路径,调用include_directories(路径);
    • 2.设置环境变量(写法几乎固定,跟也要结合实际情况来调整):
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}")
    
    • 3.在target_link_libraries中添加静态库或动态库的名字
    • 注意:别忘记配置build.gradle,如下图:
      在这里插入图片描述

1.5.aux_source_directory方法的使用

  • 语法
aux_source_directory(<dir> <variable>)
<dir>:要扫描的目录(实践过相对路径,不会递归包含子目录,仅包含指定的dir目录)。
<variable>:存储找到的源文件列表的变量名。
  • 如:收集 src/ 目录下的所有源文件
aux_source_directory(src SOURCE_FILES)
//继续调用add_library方法
add_library(native-lib SHARED ${SOURCE_FILES})

二.创建支持Ffmpeg的Android项目

  • 创建native项目,在native-cpp文件中掉用ffmpeg提供的一个方法,打印ffmpeg编译配置信息。第一节中除了静态库和aux_source_directory未在项目中使用到,其它的都进行了使用,并做了详细的注释。gradle的修改在1.3中有详细的截图信息,重点关注CMakeLists.txt文件。

  • 运行效果
    在这里插入图片描述

  • CMakeLists.txt文件

#设置此项目所需的最低CMake版本。
cmake_minimum_required(VERSION 3.22.1)#include_directories:指定 原生代码 或 so库 的头文件路径
#添加头文件路径(相对于本文件路径)
include_directories(include)#声明项目名称。
project("ffmpeg_simple01")#find_library:将一个变量和Android NDK的某个库建立关联关系。该函数的第二个参数为Android NDK中对应的库名称,
#而调用该方法之后,它就被和第一个参数所指定的变量关联在一起。 在这种关联建立以后,我们就可以使用这个变量在构建脚本的其它部分引用该变量所关联的NDK库。
find_library(log-liblog)#CMAKE_SOURCE_DIR 表示的是CMakeLists.txt所在的路径
#message("============================= 1 =============================")
#message("${CMAKE_CXX_FLAGS}")
#message("============================= 2 =============================")
#message("${CMAKE_SOURCE_DIR}")
#message("============================= 3 =============================")
#message("${ANDROID_ABI}")
#message("${CMAKE_HOME_DIRECTORY}/libs/${ANDROID_ABI}")
#设置环境变量         结合include_directories(include),最后在target_link_libraries中添加静态库或动态库的名字,就可以实现引入第三方静态库或动态库
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}")#add_library:添加 源文件或库
#创建可执行文件或库的目标
#第一个参数,决定了最终生成的共享库的名字
#第二个参数,我们可以指定根据源文件编译出来的是静态库还是共享库,分别对应STATIC/SHARED关键字
#第三个参数,指定源文件   (为IMPORTED时则表示是外部预编译的)#创建并命名一个库(构建一个原生库)
#在 Android 中调用 System.loadLibrary("ffmpeg_simple01") 时,库名称 必须 与 CMakeLists.txt 中定义的目标库名称 完全匹配。即add_library中的第一个参数不能随便定义
#在这个顶级CMakeLists.txt中,${CMAKE_PROJECT_NAME}用于定义目标库名称;
add_library(${CMAKE_PROJECT_NAME} SHARED native-lib.cpp)#将预构建库关联到原生库
#指定CMake应链接到目标库的库。可以链接来自不同来源的库,例如本文中定义的库构建脚本、预构建的第三方库或Android系统库。
target_link_libraries(${CMAKE_PROJECT_NAME}avcodecavformatavutilswresampleswscaleandroid${log-lib})
  • 代码相关
    在这里插入图片描述

三.总结

  • 本篇文章记录了最常用的CMake语法,以及在Android项目的使用。
http://www.dtcms.com/wzjs/568028.html

相关文章:

  • 有哪个网站教人做美食深圳西乡建网站
  • 网站建设公司初心wordpress官方安装主题
  • 爱站网关键词查询绍兴网站建设专业的公司
  • 人社局网站建设管理工作总结做网站用哪个写比较好
  • 公司网站开发招标书网站管理包括
  • 网站开发学习porto wordpress
  • 手机金融界网站菠菜网站怎样做安全
  • 关键词是在网站后台做的吗广东十大广告公司
  • 资阳网站制作网站缩放代码
  • 哈尔滨市做网站学校网站建设开发商
  • 网站后台改不了设置怎么开通自己的微信公众号
  • 西安网站制作工程师互联网内容服务商
  • 东莞网站建设方案咨询帮企业做网站的公司
  • 培训网网站源码金蝶财务软件一般多少钱
  • 苏州市高新区建设局网站seo技术公司
  • 安庆专业网站建设公网站建设怎么进后台
  • 织梦网站地图优化市场调研问卷调查怎么做
  • 一级a视网站 做爰片seo英文怎么读
  • 做网站网站代理的犯法么怎么做钓鱼网站呢
  • 网站 费用服务营销包括哪些内容
  • 门户网站视频淘宝可以在哪些网站上面打做推广
  • 陵水网站建设咨询陇南地网站seo
  • 网站友情链接要加什么社交网站
  • 中职国示范建设网站网页游戏排行榜对战
  • 企业网站整理优化2022年近期舆情热点话题
  • 漂亮全屏网站专业微网站营销
  • 网站建设的基本条件公司logo设计生成器
  • 站群子网站开发备案网站可以做论坛么
  • app 网站运营ppt简洁 手机 导航网站模板下载安装
  • 网页设计软件列表点击查看seo和sem的关系为负关系