From d182c7b702d3b77cd6a3f0d026967b6de4e76ac4 Mon Sep 17 00:00:00 2001 From: luoyong Date: Wed, 14 Jun 2023 11:23:54 +0800 Subject: [PATCH] modify assimp hap_integrate.md file Signed-off-by: luoyong --- thirdparty/assimp/docs/hap_integrate.md | 27 +++++++++++----------- thirdparty/assimp/docs/pic/screen_cut.jpg | Bin 18213 -> 23610 bytes 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/thirdparty/assimp/docs/hap_integrate.md b/thirdparty/assimp/docs/hap_integrate.md index ba2b6986..0dbb909f 100644 --- a/thirdparty/assimp/docs/hap_integrate.md +++ b/thirdparty/assimp/docs/hap_integrate.md @@ -23,36 +23,33 @@ ├── README_zh.md ``` -- 将assimp、zlib拷贝至tools/main目录下 +- 将assimp拷贝至tools/main目录下 ``` cd tpc_c_cplusplus cp thirdparty/assimp tools/main -rf - cp thirdparty/zlib tools/main -rf ``` - 在tools目录下编译三方库 编译环境的搭建参考[准备三方库构建环境](../../../tools/README.md#编译环境准备) ``` cd tools - ./build.sh zlib assimp + ./build.sh assimp ``` - 三方库头文件及生成的库 在tools目录下会生成usr目录,该目录下存在已编译完成的32位和64位三方库 ``` - assimp/arm64-v8a assimp/armeabi-v7a - zlib/arm64-v8a zlib/armeabi-v7a + assimp/armeabi-v7a assimp/arm64-v8a ``` - + - [测试三方库](#测试三方库) ## 应用中使用三方库 -- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库拷贝到该目录下,如下图所示 +- 在IDE的cpp目录下新增thirdparty目录,将编译生成的库头文件拷贝到该目录下,并libs目录下libassimp.so.5.2.4改名为libassimp.so.5,如下图所示  ![thirdparty_install_dir](pic/screen_cut.jpg) - 在最外层(cpp目录下)CMakeLists.txt中添加如下语句 ``` #将三方库加入工程中 - target_link_libraries(entry PRIVATE ${CMAKE_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libz.so.1) target_link_libraries(entry PRIVATE ${CMAKE_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libassimp.so.5) #将三方库的头文件加入工程中 target_include_directories(entry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/assimp/${OHOS_ARCH}/include) @@ -63,13 +60,15 @@ - 将编译生成的unit可执行文件及测试数据准备好 - unit 在 main/assimp/assimp-5.2.5/arm64-v8a-build/bin + unit 在 + + assimp/assimp-5.2.5/arm64-v8a-build/bin 测试数据: - main/assimp/assimp-5.2.5/test/models + assimp/assimp-5.2.5/test/models - main/assimp/assimp-5.2.5/test/models-nonbsd + assimp/assimp-5.2.5/test/models-nonbsd - 将准备好的文件推送到开发板,在windows命令行进行如下操作 @@ -78,14 +77,14 @@ hdc_std file send unit /data #将可执行文件推入开发板data目录 hdc_std file send models/ /data #将测试文件推入开发板data目录 hdc_std file send models-nonbsd/ /data #将测试文件推入开发板data目录 - hdc_std file send libc++_shared.so /system/lib64 - hdc_std file send libz.so.1 /system/lib64 - hdc_std file send libassimp.so.5 /system/lib64 + hdc_std file send libassimp.so.5.2.4 /system/lib64/libassimp.so.5 hdc_std shell #进入开发板 chmod 777 unit #添加权限 ./unit #执行测试用例 ``` +测试用例运行结果如下: +  ![zbar_test](pic/run_screen_cut.jpg) ## 参考资料 diff --git a/thirdparty/assimp/docs/pic/screen_cut.jpg b/thirdparty/assimp/docs/pic/screen_cut.jpg index 276d1d34d5f5227a9f5f196bcc3af275d1465234..936c106a6397077938481bf274810a0ee6b194f1 100644 GIT binary patch literal 23610 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 KznR&wJ^UZb?b7K0 literal 18213 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 Oj2r&XLK&1i^FIJP$v1fb -- Gitee