首页 > 其他分享 >编译 wolfssl 库

编译 wolfssl 库

时间:2024-08-20 17:54:53浏览次数:8  
标签:OFF wolfssl DWOLFSSL 编译 BOOL build

wolfssl github: https://github.com/wolfSSL/wolfssl


 

  • 编译 .lib 或者 .dll

wolfssl 很好的提供了 win32 的工程=》sln 文件

这样就不用折腾 CMakeLists 文件了,使用 Visual Studio 打开 sln 文件后,设置好 Static 编译库即可,开箱即用

 

 

 


 

  • 编译 .a 文件

如果需要编译 .a 库,可以借助 MINGW64 终端

因为 wolfssl 已经提供了 CMakeLists.txt,所以编译起来还是省事不少

在 MINGW64 终端中 cd 到 wolfssl/src,执行以下命令行:

cmake -S . -B build -G Ninja -DCMAKE_FLAGS="-DWOLFSSL_CRYPT_ONLY:BOOL=ON -DWOLFSSL_CRYPT_TESTS:BOOL=OFF -DWOLFSSL_DSA:BOOL=ON -DWOLFSSL_ECC:BOOL=OFF -DWOLFSSL_RSA:BOOL=OFF -DWOLFSSL_FILESYSTEM:BOOL=OFF -DWOLFSSL_ASYNC_THREADS:BOOL=OFF -DWOLFSSL_OLD_NAMES:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF"

 

接着 ninja,可能会提示缺少 <stdint.h>

可以在源码中添加以下代码,

#if defined(__MINGW64__)
#include <stdint.h>
#endif

  

这样重新编译后就成功了

不过这样编译出的库名字有点奇葩,会编译出 libwolfssl.dll.a 的库

故可以采用 sh 脚本方法一步到位,也不会报缺少头文件的错误

build_mingw64.sh

#!/bin/bash
set -e

CMAKE_FLAGS="-DWOLFSSL_CRYPT_ONLY:BOOL=ON -DWOLFSSL_CRYPT_TESTS:BOOL=OFF -DWOLFSSL_DSA:BOOL=ON -DWOLFSSL_ECC:BOOL=OFF -DWOLFSSL_RSA:BOOL=OFF -DWOLFSSL_FILESYSTEM:BOOL=OFF -DWOLFSSL_ASYNC_THREADS:BOOL=OFF -DWOLFSSL_OLD_NAMES:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF"

mkdir -p package/ming64/include
mkdir -p package/ming64/lib

rm -rf build

cmake -S . -B build -G Ninja $CMAKE_FLAGS
cd build
ninja
cp -r wolfssl ../package/ming64/include/
cp -r libwolfssl.a ../package/ming64/lib/
cd ..

rm -rf build

  


 

另附鸿蒙库的编译脚本:

#!/bin/bash
set -e

NDK_PATH=~/Library/OpenHarmony/sdk/native/4.0
CMAKE=~/Library/OpenHarmony/sdk/native/4.0/build-tools/cmake/bin/cmake

CMAKE_FLAGS="-DWOLFSSL_CRYPT_ONLY:BOOL=ON -DWOLFSSL_CRYPT_TESTS:BOOL=OFF -DWOLFSSL_DSA:BOOL=ON \
             -DWOLFSSL_ECC:BOOL=OFF -DWOLFSSL_RSA:BOOL=OFF -DWOLFSSL_FILESYSTEM:BOOL=OFF \
             -DWOLFSSL_ASYNC_THREADS:BOOL=OFF -DWOLFSSL_OLD_NAMES:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF"

arch=arm64-v8a

rm -rf build

 $CMAKE -B build -G Ninja -DOHOS_STL=none -DOHOS_PLATFORM=OHOS \
   -DCMAKE_TOOLCHAIN_FILE="${NDK_PATH}/build/cmake/ohos.toolchain.cmake" \
   -DCMAKE_C_FLAGS="-Qunused-arguments" $CMAKE_FLAGS -DOHOS_ARCH=$arch
cd build
ninja

mkdir -p ../package/ohos/include/$arch
cp -r wolfssl ../package/ohos/include/$arch/
mkdir -p ../package/ohos/lib/$arch
mv libwolfssl.a ../package/ohos/lib/$arch/

cd ..

  

标签:OFF,wolfssl,DWOLFSSL,编译,BOOL,build
From: https://www.cnblogs.com/strive-sun/p/18369974

相关文章

  • 免费国产 Java 反编译工具 jdecode.net
    免费国产Java反编译工具jdecode.netjdecode于2024-04-2512:04:37发布阅读量1.1k收藏20点赞数27文章标签:java开发语言版权网站地址:www.jdecode.net推荐理由:功能强大、成功率高、错误少、安全、免费、国产1、功能强大主流版本支持:支持Java5~11主流版本,经过大规......
  • 反编译和反汇编有什么区别
    反编译(Decompilation)和反汇编(Disassembly)是两个不同的概念,其区别如下:1.反编译:反编译是将已编译的可执行程序(如二进制文件、字节码等)还原为高级语言(如C、Java等)的过程。反编译器会分析程序的结构、流程和逻辑,并尽可能地还原出源代码的形式,以便开发人员进行代码理解、修改和调试。......
  • MySQL编译安装-麒麟V10 x86
    环境信息操作系统:KylinLinuxAdvancedServerV10(Sword)架构:X86MySQL版本:5.7.44编译安装必要的依赖库和编译工具sudoyumgroupinstall'DevelopmentTools'sudoyuminstallcmakencurses-developenssl-develboost-devel下载MySQL源码从MySQL官方网站......
  • TypeScript学习之旅--编译选项-tsconfig.json
    上一篇文章提到了tsconfig.json文件中的简单配置项,如include、extends、exclude,本篇文章我们了解一下编译器选择compilerOptions1、target  用来指定ts被编译为js的ES版本有固定值,例如:‘es3’ 'es5' 'es6''es2015' 'es2018'等“target”:"es2915"2、moud......
  • unbuntu更新Python3版本到最新,安装依赖手动编译
    安装依赖sudoaptupdatesudoaptinstallbuild-essentialzlib1g-devlibffi-devlibssl-dev下载安装包,手动配置编译官网查找对应linux版本tgz包wgethttps://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgztar-xzvfPython-3.11.0.tgzcdPython-3.11.0......
  • Swift编译加速:精通编译器标志的高效使用
    标题:Swift编译加速:精通编译器标志的高效使用在Swift语言的高效开发流程中,编译器标志扮演着至关重要的角色。它们不仅可以优化编译过程,还能显著提高代码的性能和应用的启动速度。本文将深入探讨Swift编译器标志的使用方法,并通过实际代码示例,展示如何通过这些标志来优化Swift......
  • N1064编译链编译
    环境ubuntu20.04Arm官网有源码和编译链。但是没有编译手册。从安装版本中拿到10.3-2021.07-x86_64-aarch64-none-linux-gnu-manifest.txt根据里面的记录,去进行配置和编译。官网下载:https://developer.arm.com/downloads/-/gnu-a下载文件,存放到download中$cdtoolchain_buil......
  • ubuntu(linux): 编译安装使用python3.12.5
    一,python官网:https://www.python.org/下载页面:https://www.python.org/downloads/source/如图:二,安装1,下载:wget从命令行下载:liuhongdi@lhdpc:/usr/local/source/python$wgethttps://www.python.org/ftp/python/3.12.5/Python-3.12.5.tgz2,解压:liuhongdi@lhdpc:/......
  • Visual Studio 2013 jsoncpp 0.10.7库编译
    前言全局说明VisualStudio2013jsoncpp编译jsoncpp介绍说明:https://www.cnblogs.com/wutou/p/18367551一、说明环境:Windows7旗舰版VisualStudio2013二、选择根据vs2013工具环境和jsoncpp介绍,这里选用0.10.7版本演示三、准备3.1解压文件进入m......
  • Gradle编译项目Druid找不到tools.jar和jconsole.jar
     原因:jdk11之后不支持druid的两个依赖方法一:<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.5</version>方法二:<!--<exclusions><exclusion><gro......