生成静态库或动态库

修改 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-09-05 16:30:06

results matching ""

    No results matching ""