参照OHOS IDE和SDK的安装方法配置好开发环境。

gitee下载源码,当前最新的提交记录ID为6699e0fe8a0307b16dcc055eda04452e13abe63a

执行如下命令:

git clone https://gitee.com/mirrors/zziplib.git

进入源码所在的目录,创建批处理文件ohos_build.cmd,内容如下:

@echo off
setlocal set OHOS_SDK_HOME=D:\Tools\Huawei\OHOS\SDK\9
set CMAKE_HOME=D:\Tools\cmake-3.26.0-windows-x86_64
set PATH=%CMAKE_HOME%\bin;%PATH% cmake --version
ninja --version set SRC_ROOT=%CD%
set BUILD_ROOT=%SRC_ROOT%\build-ohos set BUILD_TARGET=libzzip cmake -G "Ninja Multi-Config" ^
-S %SRC_ROOT% ^
-B %BUILD_ROOT% ^
-DCMAKE_TOOLCHAIN_FILE=%OHOS_SDK_HOME%\native\build\cmake\ohos.toolchain.cmake ^
-DCMAKE_CXX_FLAGS="-Wno-unused-command-line-argument" ^
-DCMAKE_C_FLAGS="-Wno-unused-command-line-argument" ^
-DBUILD_STATIC_LIBS=ON ^
-DMSVC_STATIC_RUNTIME=ON ^
-DZZIPMMAPPED=OFF ^
-DZZIPFSEEKO=OFF ^
-DZZIPWRAP=OFF ^
-DZZIPSDL=OFF ^
-DZZIPBINS=OFF ^
-DZZIPTEST=OFF ^
-DZZIPDOCS=OFF ^
-DZZIPLIB_OPTIONS="-DZZIP_COMPAT=OFF;-DZZIP_PKGCONFIG=OFF" cmake --build %BUILD_ROOT% --target %BUILD_TARGET% --config release --parallel

为了顺利通过编译,需要给现有的CMakeLists.txt打个补丁,内容如下:

diff --git a/zzip/CMakeLists.txt b/zzip/CMakeLists.txt
index c294c1f..aa4bd34 100644
--- a/zzip/CMakeLists.txt
+++ b/zzip/CMakeLists.txt
@@ -35,6 +35,11 @@ else()
option(ZZIP_LIBLATEST "Ensure libname.lib links to libname-REL.lib" OFF)
endif() +if(OHOS)
+set(ZZIP_COMPAT OFF)
+set(ZZIP_PKGCONFIG OFF)
+endif()
+
# used in zzip/_config.h
set(ZZIP_PACKAGE "${PROJECT_NAME}lib")
set(ZZIP_VERSION "${PROJECT_VERSION}")
@@ -359,7 +364,7 @@ if(ZZIP_LIBTOOL)
${outdir}/${lib}${libname}${librelease}${dll}.12
DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif(ZZIPMMAPPED)
- endif(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
+ endif(BUILD_SHARED_LIBS AND CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
endif(ZZIP_LIBTOOL) if(ZZIP_LIBLATEST)

进入CMD,在源码所在的目录下,执行如下命令:

call ohos_build.cmd

等待项目编译结束。

CMakeLists.txt有编码错误,导致配置项目的时候存在告警,不过不影响项目的编译。

D:\workspace\CODE\zziplib>call ohos_build.cmd
cmake version 3.26.0 CMake suite maintained and supported by Kitware (kitware.com/cmake).
1.11.1
-- found sizeof(off_t/32)=8 and sizeof(off_t/64)=8
CMake Warning (dev) in zzip/CMakeLists.txt:
A logical block opening on the line D:/workspace/CODE/zziplib/zzip/CMakeLists.txt:336 (if) closes on the line D:/workspace/CODE/zziplib/zzip/CMakeLists.txt:367 (endif) with mis-matching arguments.
This warning is for project developers. Use -Wno-dev to suppress it.

使用OHOS SDK构建zziplib的更多相关文章

  1. Eclips+ADT+SDK构建android开发环境及android自动化测试开发环境

    一. 需要用到的包: 1.adt-bundle-windows-x86_64-20140702.zip+JDK+ant 2.ant下载地址:http://ant.apache.org/bindownl ...

  2. 使用声网 SDK 构建 Piloteer 助盲服务平台的最佳实践

    前言 在今年声网主办的「RTE2022 编程挑战赛」中,数支队伍经过一个多月的努力开发,很多优秀的作品最终突出重围,斩获大奖.本文由RTE2022编程挑战赛获奖者之一李新春撰写,他主要围绕获奖作品「P ...

  3. Eclipse SDK构建J2EE开发环境

    鄙视官Java EE Developers 体积庞大的兄弟们可以提出自己的J2EE开发环境! 1.第一次去Eclipse官网下载Eclipse IDE 我使用的是:Eclipse IDE for Ja ...

  4. .NET 7 SDK 开始 支持构建容器化应用程序

    微软于 8 月 25 日在.NET官方博客上,.NET 7 SDK 将包括对创建容器化应用程序的支持,作为构建发布过程的一部分,从而绕过需要.显式 Docker 构建阶段. 这一决定背后的基本认知是简 ...

  5. 阿里云 OCS SDK for NodeJS介绍

    阿里云 OCS SDK for NodeJS介绍 阿里云技术团队:熊亮 阿里云 SDK for NodeJS 是为 NodeJS 开发者提供使用阿里云各项服务的统一入口,由阿里云UED团队负责开发维护 ...

  6. eclipse构建maven+scala+spark工程

    前提条件 下载安装Scala IDE build of Eclipse SDK 构建工程 1.新建maven工程 2.配置项目信息 3.新建scala对应的Source Folder 4.添加scal ...

  7. Android官方技术文档翻译——新构建系统概述

    本文译自Android官方技术文档<New Build System>,原文地址:http://tools.android.com/tech-docs/new-build-system. ...

  8. Android官方技术文档翻译——开发工具的构建概述

    本文译自Android官方技术文档<Build Overview>,原文地址:http://tools.android.com/build. 因为<Android Lint Chec ...

  9. Android SDK Mangaer 需要下载的组件

    以 Windows 下为例,安装完 Android SDK 后,可以看到 SDK 的目录结构如下: 其中: SDK Manager.exe 是 Android SDK 的管理工具, AVD Manag ...

  10. 如何使用SDK在Ubuntu设备(包括仿真器和桌面)上运用应用程序

    简介 有三种运行通过SDK创建的应用程序的方式:在桌面上,在联网的Ubuntu设备上,以及在仿真器中.这些方式为互补性方式,因为各有优缺点.您首先将了解如何管理SDK的设备类型,以及哪一个类型用于测试 ...

随机推荐

  1. Excel 求和函数结果一直为零

    参考资料:Excel表格求和结果总是0怎么办 用SUMIFS函数求和,结果都是零 错误原因: 1.单元列数据格式设置错误,参考资料一 2.数据中含有空格或者回车键或者隐藏字符,参考资料二 解决方法: ...

  2. Redis哨兵(sentinel)

    目录 前言 原理 架构图 下载 命令 配置 启动 查看 Sentinel(哨兵)配置 常用命令 Q&A Redis主从配置异常解决:Error condition on socket for ...

  3. PostgreSQL、KingBase 数据库 ORDER BY LIMIT 查询缓慢案例

    好久没写博客了,最近从人大金仓离职了,新公司入职了蚂蚁集团,正在全力学习 OcenaBase 数据库的体系结构中. 以后分享的案例知识基本上都是以 OcenaBase 分布式数据库为主了,呦西. 昨天 ...

  4. 掌握pandas cut函数,一键实现数据分类

    pandas中的cut函数可将一维数据按照给定的区间进行分组,并为每个值分配对应的标签.其主要功能是将连续的数值数据转化为离散的分组数据,方便进行分析和统计. 1. 数据准备 下面的示例中使用的数据采 ...

  5. Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341)D - Only one of two(数论、二分)

    目录 链接 题面 题意 题解 代码 总结 链接 D - Only one of two 题面 题意 求第\(k\)个只能被\(N\)或\(M\)整除的数 题解 \([1,x]\)中的能被\(n\)整除 ...

  6. vue 动态加载css,改变网站皮肤模式

    Vue.mixin({ created () { require('view-design/dist/styles/iview.css') } }) 参考资料:https://blog.csdn.ne ...

  7. Nginx 同时支持 http 和 https SSL 为了能有权限调取摄像头

    Nginx 同时支持 http 和 https 当然起项目的会后也分成俩 "dev": "vue-cli-service serve --port=8080", ...

  8. 教你一招,解决Github图片不显示问题(2021.1.20测试可用)

    本文提供的是windows系统解决方法,linux系统和mac系统可以参考原理,修改DNS的ip地址为阿里云或者是修改hosts文件 问题 可能有些朋友和我遇到同样的问题,逛Github的时候会发现, ...

  9. springMVC+JDBC:分页示例

    文章来源:http://liuzidong.iteye.com/blog/1067492 一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5 二 工程相关图片: ...

  10. django项目(博客二)

    扩展1:admin路由分发的本质 路由分发本质 include 可以无限制的 嵌套N多层 url(r'^index/',([],None,None)) 扩展2: 由于url方法第一个参数是正则表达式, ...