FlyThings IDE 预览版(DEV)

[!TIP] 预览版可以更早地体验新功能,但可能存在不兼容的更新

下载 FlyThings IDE 预览版

预览版本采用新的项目结构,但是大体保持不变。

项目结构的更改

  • 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" />
            <!-- subdirectory 可指定目标子目录 -->
            <header filter="src/foo/hello.h" subdirectory="foo"/>
            <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>

targetid属性表示库名称,type表示库的类型, staticLibrary 表示静态链接库, sharedLibrary 表示动态链接库。

header元素 用于指定需要随库提供的头文件,filter属性表示文件的路径,支持通配符
source元素 用于指定需要编译成库的源文件,filter属性表示文件的路径,支持通配符
可以根据情况,添加多个 headersource 元素

编译项目后,静态链接库和动态链接库将生成到 Release目录下

添加本地静态链接库或者动态链接库

如果是私有的静态库或者动态库,可以将库文件放到约定的目录下,编译代码时,将自动链接。

  1. 在项目的src目录下,添加dependencies目录
  2. dependencies目录下,添加include目录, 编译时,该目录视为头文件搜索目录
  3. dependencies目录下,添加lib目录,编译时,会自动链接该目录下所有的静态库及动态库
  4. dependencies目录下,添加lib目录,编译时,会自动链接该目录下所有的静态库及动态库
    (库文件名必须以lib开头,静态库以.a作为后缀名,动态库以.so作为后缀名,否则将忽略)

    如果dependencies目录内,非lib目录内,存在动态链接库,这些库仅随程序打包,但不参与编译
    20240110更新: 如果dependencies目录下,存在lib-no-link目录,该目录下的动态链接库仅随程序打包,不参与编译。

  5. 复制库的头文件到新建的include目录下,复制库文件放到lib目录下
    完成后,目录结构类似如下。

  6. 最后选择项目名,右键,在弹出的上下文菜单中选择重新构建依赖信息,再次编译项目,依赖生效。

powered by Gitbooklast modified: 2024-01-10 16:55:02

results matching ""

    No results matching ""