Ubuntu 20.04 (рекомендуется)环境下使用 OpenHarmony SDK 编译,OpenHarmony standard 系统北向应用 c/c++ 库
从 openHarmony SDK 官方发布渠道(13b8b5812ce3b3b135743baa6629ed84bd380d8c)下载SDK  可以同时下载对应的系统镜像(这里提供的是 32bit OHOS 镜像下载),后面依次为 Windows/Linux 环境下的 SDK,SDK 分为两个版本 full 版本和 public 版本。这两个版本的 SDK 中关于 c/c++ 编译的部分是相同的,因此我们下载哪个都一样(full 版本的 SDK 在 ets 层提供了更多的 API)。再后面是 mac 环境的OHOS SDK。根据自己的环境自行下载对应版本的 SDK。
tar -zxvf version-Master_Version-OpenHarmony_3.2.10.3-20230105_163913-ohos-sdk-full.tar.gz
进入解压得到 ohos_sdk 目录,可以看到 Linux 和 windows 两个平台的 SDK 目录,我们进入 linux。
ohos@ubuntu20:~/tools/OH_SDK$ cd ohos-sdk
ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk$ ls
linux windows
ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk$ cd linux/
ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk/linux$ ls
ets-linux-x64-4.0.1.2-Canary1.zip native-linux-x64-4.0.1.2-Canary1.zip toolchains-linux-x64-4.0.1.2-Canary1.zip
js-linux-x64-4.0.1.2-Canary1.zip previewer-linux-x64-4.0.1.2-Canary1.zip
解压 Linux 环境下的 OHOS SDK 工具包,得到对应的工具目录。由于我们是 c/c++ 库的编译,我们只关注 native 目录。
ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk/linux$ for i in *.zip;do unzip ${i};done
ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk/linux$ ls
ets native toolchains
ets-linux-x64-4.0.1.2-Canary1.zip native-linux-x64-4.0.1.2-Canary1.zip toolchains-linux-x64-4.0.1.2-Canary1.zip
js previewer
js-linux-x64-4.0.1.2-Canary1.zip previewer-linux-x64-4.0.1.2-Canary1.zip
ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk/linux$ cd native/
ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk/linux/native$ ls
build docs nativeapi_syscap_config.json NOTICE.txt sysroot
```build директория содержит конфигурационные файлы, необходимые для сборки с помощью CMake.
build-tools директория содержит инструменты сборки, такие как CMake и Ninja; мы будем использовать Make для сборки.
docs директория содержит руководства по использованию.
llvm директория содержит компилятор Clang.
sysroot директория — это директория sysroot компилятора, содержащая библиотеки и соответствующие заголовочные файлы, включённые в SDK.
oh-uni-package.json — это файл, описывающий информацию о SDK, такую как версию.
NOTICE.txt — это файл с примечаниями, который обычно содержит подробное описание SDK.
ndk_system_capability.json — это файл, который отслеживает возможности, предоставляемые SDK.
nativeapi_syscap_config.json — это файл, который отслеживает возможности, предоставляемые SDK, и соответствующие заголовочные файлы.
**build и build-tools директории предоставляют CMake, Ninja и зависимости toolchain для сборки. LLVM предоставляет цепочку компилятора. Sysroot предоставляет системные ресурсы usr.**
## Использование OHOS SDK
Эта часть описывает базовые методы использования, а также случаи, когда есть зависимости между библиотеками, [перейдите сюда](./OHOS_SDK-Usage-depend-libs.md).
### Сборка библиотек с использованием CMake
SDK использует CMake как основной инструмент для создания скриптов сборки и совместим с разработкой на Deveco. CMake также является наиболее популярным инструментом для сборки проектов на C/C++ в настоящее время.В качестве примера я буду использовать библиотеку cJSON для демонстрации шагов сборки проекта CMake в OHOS SDK. Сначала скачайте/клонируйте исходный код cJSON, я использую версию v1. 7. 15.
```shell
ohos@ubuntu20:~/openHarmony$ git clone https://github.com/DaveGamble/cJSON.git -b v1. 7. 15
Cloning into 'cJSON'...
remote: Counting objects: 4545, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 4545 (delta 0), reused 0 (delta 0), pack-reused 4545
Receiving objects: 100% (4545/4545), 2. 45 MiB | 1. 65 MiB/s, done.
Resolving deltas: 100% (3026/3026), done.
Note: switching to 'd348621ca93571343a56862df7de4ff3bc9b5667'.
You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
ohos@ubuntu20:~/openHarmony$
Перейдите в директорию cJSON, создайте директорию ohos64build (для хранения файлов сборки) и выполните CMake для создания файла Makefile.
ohos@ubuntu20:~/openHarmony/cJSON/ohos64build$ /home/ohos/tools/OH_SDK/ohos-sdk/linux/native/build-tools/cmake/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/home/ohos/tools/OH_SDK/ohos-sdk/linux/native/build/cmake/ohos.toolchain.cmake . . -L
# Если требуется скомпилировать статическую библиотеку, то нужно установить переменную cmake -DBUILD_SHARED_LIBS=OFF
# Можно использовать -DCMAKE_INSTALL_PREFIX=xxx для установки директории установки библиотеки
# Для компиляции arm32 используйте -DOHOS_ARCH=armeabi-v7a
-- The C compiler identification is Clang 12. 0. 1
-- Check for working C compiler: /home/ohos/tools/OH_SDK/ohos-sdk/linux/native/llvm/bin/clang # Используется компилятор из SDK
```-- Проверка рабочего компилятора C: /home/ohos/tools/OH_SDK/ohos-sdk/linux/native/llvm/bin/clang -- работает
# Удалите большое количество логов cmake
ENABLE_PUBLIC_SYMBOLS:BOOL=ON
ENABLE_SAFE_STACK:BOOL=OFF
ENABLE_SANITIZERS:BOOL=OFF
ENABLE_TARGET_EXPORT:BOOL=ON
ENABLE_VALGRIND:BOOL=OFF
ohos@ubuntu20:~/openHarmony/cJSON/ohos64build$
Обратите внимание, что выполняется cmake из SDK, а не ваш собственный cmake. Включая toolchain file, который также находится в SDK. Выполните make для сборки библиотеки cjson
ohos@ubuntu20:~/openHarmony/cJSON/ohos64build$ make
Scanning dependencies of target cjson
[ 2%] Building C object CMakeFiles/cjson.dir/cJSON.c.o
clang: warning: argument unused during compilation: '--gcc-toolchain=/home/ohos/tools/OH_SDK/ohos-sdk/linux/native/llvm' [-Wunused-command-line-argument]
# Удалите большое количество логов make
[100%] Linking C executable fuzz_main
[100%] Built target fuzz_main
ohos@ubuntu20:~/openHarmony/cJSON/ohos64build$
Используйте команду file для просмотра свойств сгенерированного elf файла. Можно видеть, что динамическая библиотека и исполняемый файл являются архитектурой ARM aarch64. ohos cmake toolchainfile по умолчанию является aarch64, если вы хотите скомпилировать arm32, вам нужно добавить параметр -DOHOS_ARCH=armeabi-v7a при выполнении cmake
ohos@ubuntu20:~/openHarmony/cJSON/ohos64build$ ls
cJSONConfig.cmake cJSON_test CMakeFiles CTestTestfile.cmake libcjson.pc libcjson.so libcjson.so.1 Makefile
cJSONConfigVersion.cmake CMakeCache.txt cmake_install.cmake fuzzing libcjson.so libcjson.so.1.7.15 tests
ohos@ubuntu20:~/openHarmony/cJSON/ohos64build$ file libcjson.so.1.7.15 cJSON_test
libcjson.so.1.7.15: ELF 64-bit LSB shared object, aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID=9bddd6d6f3c4e4b7b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9bОткрытые сообщества содержат множество библиотек, которые не используют CMake для компиляции. Как использовать SDK OpenHarmony для компиляции таких библиотек?
#### Метод 1: Переписать процесс сборки с использованием CMake-скриптов
Этот метод требует анализа скриптов сборки исходной библиотеки или анализа логов компиляции. Я рекомендую анализировать логи кросс-компиляции, а не логи x86_64 (CMake). Если вы используете этот метод, обратитесь к руководству по написанию CMake для сторонних библиотек OH [руководство по CMake](https://gitee.com/huangminzhong/cmake_study) и [стандартам написания](./cmake_specification.md).
#### Метод 2: Использование оригинальных средств сборки проекта, таких как configure, Makefile
Как использовать оригинальные средства сборки? В первую очередь следует знать, что скрипты сборки не вызывают GCC или Clang напрямую. Они вызывают компиляторы C и C++ через переменные окружения CC и CXX соответственно. Установив эти переменные, можно заставить средства сборки использовать компиляторы SDK OpenHarmony.Установка переменных окружения для компиляции 64-битных библиотек OpenHarmony
```bash
# aarch64-linux-ohos
export OHOS_SDK=/home/ohos/tools/OH_SDK/ohos-sdk/linux # Это мой каталог распакованного ohos_sdk, замените его на свой
export AS=${OHOS_SDK}/native/llvm/bin/llvm-as
export CC="${OHOS_SDK}/native/llvm/bin/clang --target=aarch64-linux-ohos"
export CXX="${OHOS_SDK}/native/llvm/bin/clang++ --target=aarch64-linux-ohos"
export LD=${OHOS_SDK}/native/llvm/bin/ld.lld
export STRIP=${OHOS_SDK}/native/llvm/bin/llvm-strip
export RANLIB=${OHOS_SDK}/native/llvm/bin/llvm-ranlib
export OBJDUMP=${OHOS_SDK}/native/llvm/bin/llvm-objdump
export OBJCOPY=${OHOS_SDK}/native/llvm/bin/llvm-objcopy
Настройка переменных окружения для компиляции 32-битной библиотеки OHOS
linux-arm
export OHOS_SDK=/home/ohos/tools/OH_SDK/ohos-sdk/linux # Укажите свой путь к распакованному SDK OHOS
export AS=${OHOS_SDK}/native/llvm/bin/llvm-as
export CC="${OHOS_SDK}/native/llvm/bin/clang --target=arm-linux-ohos"
export CXX="${OHOS_SDK}/native/llvm/bin/clang++ --target=arm-linux-ohos"
export LD=${OHOS_SDK}/native/llvm/bin/ld.lld
export STRIP=${OHOS_SDK}/native/llvm/bin/llvm-strip
export RANLIB=${OHOS_SDK}/native/llvm/bin/llvm-ranlib
export OBJDUMP=${OHOS_SDK}/native/llvm/bin/llvm-objdump
export OBJCOPY=${OHOS_SDK}/native/llvm/bin/llvm-objcopy
export NM=${OHOS_SDK}/native/llvm/bin/llvm-nm
export AR=${OHOS_SDK}/native/llvm/bin/llvm-ar
export CFLAGS="-fPIC -march=armv7-a -D__MUSL__=1"
export CXXFLAGS="-fPIC -march=armv7-a -D__MUSL__=1"
Используйте команду unset
для удаления переменных окружения
unset OHOS_SDK AS CC CXX LD STRIP RANLIB OBJDUMP OBJCOPY NM AR CFLAGS CXXFLAGS
После настройки компилятора можно использовать стандартный метод configure
для компиляции.### Пример использования
В качестве примера рассмотрим компиляцию библиотеки OpenSSL для системы OpenHarmony с использованием SDK OHOS (OpenSSL использует метод configure
для компиляции).
Сначала клонируем официальный исходный код OpenSSL, версию OpenSSL_1_1_1t.
ohos@ubuntu20:~/openHarmony$ git clone https://github.com/openssl/openssl.git -b OpenSSL_1_1_1t
Cloning into 'openssl'...
remote: Enumerating objects: 446051, done.
remote: Counting objects: 100% (342/342), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 446051 (delta 207), reused 259 (delta 159), pack-reused 445709
Receiving objects: 100% (446051/446051), 272.13 MiB | 1.53 MiB/s, done.
Resolving deltas: 100% (316557/316557), done.
Note: switching to '830bf8e1e4749ad65c51b6a1d0d769ae689404ba'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Или отмените это действие с помощью: git switch - Выключите это уведомление, установив конфигурационную переменную advice.detachedHead в значение false
Установите переменные окружения для требуемой цепочки компиляторов, здесь используется цепочка компиляторов для сборки ohos64bit. Если вам нужно скомпилировать ohos32bit, установите переменные для 32-битной цепочки компиляторов.
ohos@ubuntu20:/openHarmony/openssl$ export OHOS_SDK=/home/ohos/tools/OH_SDK/ohos-sdk/linux #Здесь укажите свой каталог развертывания SDK
ohos@ubuntu20:/openHarmony/openssl$ export AS=${OHOS_SDK}/native/llvm/bin/llvm-as
ohos@ubuntu20:~/openHarmony/openssl$ export CC="${OHOS_SDK}/native/llvm/bin/clang --target=aarch64-linux-ohos"
ohos@ubuntu20:~/openHarmony/openssl$ export LD=${OHOS_SDK}/native/llvm/bin/lld
ohos@ubuntu20:~/openHarmony/openssl$ export STRIP=${OHOS_SDK}/native/llvm/bin/llvm-strip
ohos@ubuntu20:~/openHarmony/openssl$ export RANLIB=${OHOS_SDK}/native/llvm/bin/llvm-ranlib
ohos@ubuntu20:~/openHarmony/openssl$ export OBJDUMP=${OHOS_SDK}/native/llvm/bin/llvm-objdump
ohos@ubuntu20:~/openHarmony/openssl$ export OBJCOPY=${OHOS_SDK}/native/llvm/bin/llvm-objcopy
ohos@ubuntu20:~/openHarmony/openssl$ export NM=${OHOS_SDK}/native/llvm/bin/llvm-nm
ohos@ubuntu20:~/openHarmony/openssl$ export AR=${OHOS_SDK}/native/llvm/bin/llvm-ar
ohos@ubuntu20:~/openHarmony/openssl$ export CFLAGS="-fPIC -D__MUSL__=1"
ohos@ubuntu20:~/openHarmony/openssl$ export CXXFLAGS="-fPIC -D__MUSL__=1"
Выполните скрипт конфигурации Configure
ohos@ubuntu20:~/openHarmony/openssl$ . /Configure linux-aarch64 --prefix=/home/ohos/openHarmony/openssl_install
# При необходимости выберите систему, так как configure не распознает ohos, используйте эквивалентную Linux aarch64 систему и архитектуру процессора. Для удобства пакетирования необходимо указать директорию установки
Конфигурация OpenSSL версии 1.1.1t (0x1010114fL) для linux-aarch64
Используется конфигурация семян, специфичная для операционной системы
Создание файла configdata.pm
Создание файла Makefile
**********************************************************************
*** ***
*** OpenSSL успешно конфигурирована ***
*** ***
*** Если вы столкнулись с проблемой при сборке, пожалуйста, ***
*** создайте задачу на GitHub <https://github.com/openssl/openssl/issues> ***
***
***
Переведите вывод следующей команды:
***
*** perl configdata.pm --dump
***
*** (Если вы новичок в OpenSSL, вам может помочь раздел «Troubleshooting» файла INSTALL)
***
***
**********************************************************************
ohos@ubuntu20:~/openHarmony/openssl$ make
/usr/bin/perl "-I. " -Mconfigdata "util/dofile. pl" \
"-oMakefile" include/crypto/bn_conf. h. in > include/crypto/bn_conf. h
/usr/bin/perl "-I. " -Mconfigdata "util/dofile. pl" \
"-oMakefile" include/crypto/dso_conf. h. in > include/crypto/dso_conf. h
/usr/bin/perl "-I. " -Mconfigdata "util/dofile. pl" \
"-oMakefile" include/openssl/opensslconf. h. in > include/openssl/opensslconf. h
make depend && make _all
make[1]: Вход в каталог '/home/ohos/openHarmony/openssl'
make[1]: Выход из каталога '/home/ohos/openHarmony/openssl'
make[1]: Вход в каталог '/home/ohos/openHarmony/openssl'
/home/ohos/tools/OH_SDK/ohos-sdk/linux/native/llvm/bin/clang -I. -Iinclude -fPIC -pthread -Wa,--noexecstack -Qunused-arguments -fPIC --target=aarch64-linux-ohos -D__MUSL__=1 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/home/ohos/openHarmony/openssl_install/ssl\"" -DENGINESDIR="\"/home/ohos/openHarmony/openssl_install/lib/engines-1. 1\"" -DNDEBUG -MMD -MF apps/app_rand. d. tmp -MT apps/app_rand. o -c -o apps/app_rand. o apps/app_rand. c
# Удалите большое количество логов make
${LDCMD:-/home/ohos/tools/OH_SDK/ohos-sdk/linux/native/llvm/bin/clang} -pthread -Wa,--noexecstack -Qunused-arguments -fPIC --target=aarch64-linux-ohos -D__MUSL__=1 -L. \
-o test/x509aux test/x509aux. o \
test/libtestutil. a -lcrypto -ldl -pthread
/usr/bin/perl "-I. " -Mconfigdata "util/dofile. pl" \
"-oMakefile" apps/CA. pl. in > "apps/CA. pl"
chmod a+x apps/CA. pl
/usr/bin/perl "-I. " -Mconfigdata "util/dofile. pl" \
"-oMakefile" apps/tsget. in > "apps/tsget. pl"
chmod a+x apps/tsget. pl
/usr/bin/perl "-I. " -Mconfigdata "util/dofile. pl" \
"-oMakefile" tools/c_rehash. in > "tools/c_rehash"
chmod a+x tools/c_rehash
/usr/bin/perl "-I. " -Mconfigdata "util/dofile. pl" \
"-oMakefile" util/shlib_wrap. sh. in > "util/shlib_wrap. sh"
chmod a+x util/shlib_wrap. sh```markdown
make[1]: Leaving directory '/home/ohos/openHarmony/openssl'
ohos@ubuntu20:~/openHarmony/openssl$ make install
make depend && make _build_libs
make[1]: Entering directory '/home/ohos/openHarmony/openssl'
make[1]: Leaving directory '/home/ohos/openHarmony/openssl'
make[1]: Entering directory '/home/ohos/openHarmony/openssl'
make[1]: Nothing to be done for '_build_libs'.
make[1]: Leaving directory '/home/ohos/openHarmony/openssl'
создан каталог `/home/ohos/openHarmony/openssl_install/lib'
*** Установка рабочих библиотек
установка libcrypto.so.1.1 -> /home/ohos/openHarmony/openssl_install/lib/libcrypto.so.1.1
установка libssl.so.1.1 -> /home/ohos/openHarmony/openssl_install/lib/libssl.so.1.1
*** Установка файлов для разработки
создан каталог `/home/ohos/openHarmony/openssl_install/include'
создан каталог `/home/ohos/openHarmony/openssl_install/include/openssl'
установка ./include/openssl/aes.h -> /home/ohos/openHarmony/openssl_install/include/openssl/aes.h
установка ./include/openssl/asn1.h -> /home/ohos/openHarmony/openssl_install/include/openssl/asn1.h
установка ./include/openssl/asn1_mac.h -> /home/ohos/openHarmony/openssl_install/include/openssl/asn1_mac.h
# удаление большого количества логов установки
/home/ohos/openHarmony/openssl_install/share/doc/openssl/html/man7/X25519.html
/home/ohos/openHarmony/openssl_install/share/doc/openssl/html/man7/X448.html -> /home/ohos/openHarmony/openssl_install/share/doc/openssl/html/man7/X25519.html
/home/ohos/openHarmony/openssl_install/share/doc/openssl/html/man7/x509.html
ohos@ubuntu20:~/openHarmony/openssl$
После завершения установки просмотрите каталог установки, чтобы убедиться, что исполняемые файлы, динамические библиотеки, статические библиотеки и заголовочные файлы были установлены в указанные каталоги.
ohos@ubuntu20:~/openHarmony/openssl$ cd ../openssl_install/
ohos@ubuntu20:~/openHarmony/openssl_install$ ls
bin include lib share ssl
ohos@ubuntu20:~/openHarmony/openssl_install$ ls bin/
c_rehash openssl
aes.h bnerr.h comp.h dh.h engine.h md2.h opensslconf.h rand_drbg.h seed.h store.h x509.h
asn1err.h bn.h conf_api.h dsaerr.h e_os2.h md4.h opensslv.h randerr.h sha.h symhacks.h x509v3err.h
asn1.h buffererr.h conferr.h dsa.h err.h md5.h ossl_typ.h rand.h srp.h tls1.h x509v3.h
asn1_mac.h buffer.h conf.h dtls1.h evperr.h mdc2.h pem2.h rc2.h srtp.h tserr.h x509_vfy.h
asn1t.h camellia.h cryptoerr.h ebcdic.h evp.h modes.h pemerr.h rc4.h ssl2.h ts.h
asyncerr.h cast.h crypto.h ecdh.h hmac.h objectserr.h pkcs12err.h ripemd.h ssl3.h txt_db.h
async.h cmac.h cterr.h ecdsa.h idea.h objects.h pkcs12.h rsaerr.h ssl.h uierr.h
bioerr.h cmserr.h ct.h ecerr.h kdferr.h obj_mac.h pkcs7err.h rsa.h stack.h whrlpool.h
bio.h cms.h des.h ec.h kdf.h ocsperr.h pkcs7.h safestack.h storeerr.h x509err.h
```ohos@ubuntu20:~/openHarmony/openssl_install$ file lib/*
lib/engines-1.1: директория
lib/libcrypto.a: текущий архив ar
lib/libcrypto.so: символьная ссылка на libcrypto.so.1.1
lib/libcrypto.so.1.1: ELF 64-битный LSB объект сопряжения, ARM aarch64, версия 1 (SYSV), динамически связанный, с отладочной информацией, не стipped
lib/libssl.a: текущий архив ar
lib/libssl.so: символьная ссылка на libssl.so.1.1
lib/libssl.so.1.1: ELF 64-битный LSB объект сопряжения, ARM aarch64, версия 1 (SYSV), динамически связанный, с отладочной информацией, не стipped
lib/pkgconfig: директория
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )