FlyThings IDE 预览版(DEV)
[!TIP] 预览版可以更早地体验新功能,但可能存在不兼容的更新
预览版本采用新的项目结构,但是大体保持不变。
项目结构的更改
jni
目录更改为src
- 移除项目根目录下的
Makefile
,改为Manifest.xml
代替 - 编译项目后,将生成
Release
文件夹,它用于存放编译过程中产生的临时文件,可随意删除,下次编译会再次自动生成。
Manifest.xml
Manifest.xml
是一个XML
格式的文件,包含调整项目平台,管理依赖项,制作动态库、静态库的功能。
新建项目后,默认的文件内容如下
<?xml version="1.0" encoding="UTF-8"?> <!-- 固定格式 -->
<!DOCTYPE xml> <!-- 固定格式 -->
<manifest platform="Z21"> <!-- 根元素必须是manifest -->
<!-- 属性platform指定项目用于Z21平台 -->
<dependencies> <!-- dependencies 下可以包含多个package -->
<package id="easyui" version="0.0.0"/> <!-- package表示依赖包,并指定id及version属性 -->
<package id="log" version="0.0.0"/>
<package id="zkhardware" version="0.0.0"/>
<package id="zknet" version="0.0.0"/>
<!-- 可添加多个依赖包 -->
</dependencies>
</manifest>
更改项目平台
修改 Manifest.xml 根元素 的 platform
属性,再次编译生效
<manifest platform="Z21">
依赖项
新建项目后,默认生成的Manifest.xml已包含该平台需要的最小依赖项。
每个平台的最小依赖项不完全相同,如果更改项目平台,还需要调整合适的依赖项
生成静态库或动态库
修改 Manifest.xml ,添加target
元素。
示例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<manifest platform="Z21">
<dependencies>
<package id="easyui" version="0.0.0" />
<package id="log" version="0.0.0" />
<package id="zkhardware" version="0.0.0" />
<package id="zknet" version="0.0.0" />
</dependencies>
<targets>
<!-- 生成libfoo1.a 静态链接库 -->
<target id="foo1" type="staticLibrary">
<header filter="src/foo/hello.h" />
<source filter="src/foo/hello.cpp" />
</target>
<!-- 生成libfoo2.so 动态链接库 -->
<target id="foo2" type="sharedLibrary">
<header filter="src/foo/hello.h" />
<source filter="src/foo/hello.cpp" />
</target>
</targets>
</manifest>
target
的id
属性表示库名称,type
表示库的类型, staticLibrary 表示静态链接库, sharedLibrary 表示动态链接库。
header
元素 用于指定需要随库提供的头文件,filter
属性表示文件的路径,支持通配符source
元素 用于指定需要编译成库的源文件,filter
属性表示文件的路径,支持通配符
可以根据情况,添加多个 header
及 source
元素
编译项目后,静态链接库和动态链接库将生成到 Release
目录下
添加本地静态链接库或者动态链接库
如果是私有的静态库或者动态库,可以将库文件放到约定的目录下,编译代码时,将自动链接。
- 在项目的
src
目录下,添加dependencies
目录 - 在
dependencies
目录下,添加include
目录, 编译时,该目录视为头文件搜索目录 在
dependencies
目录下,添加lib
目录,编译时,会自动链接该目录下所有的静态库及动态库
(库文件名必须以lib
开头,静态库以.a
作为后缀名,动态库以.so
作为后缀名,否则将忽略)如果
dependencies
目录内,非lib
目录内,存在动态链接库,这些库仅随程序打包,但不参与编译复制库的头文件到新建的
include
目录下,复制库文件放到lib
目录下
完成后,目录结构类似如下。最后选择项目名,右键,在弹出的上下文菜单中选择
重新构建依赖信息
,再次编译项目,依赖生效。