solution with pkg-config and update readme
This commit is contained in:
parent
ef8e71bd2e
commit
c0dcdc3be2
2 changed files with 15 additions and 13 deletions
|
@ -13,24 +13,26 @@
|
||||||
```
|
```
|
||||||
|
|
||||||
- Реализация не должна делать динамического выделения памяти.
|
- Реализация не должна делать динамического выделения памяти.
|
||||||
- Для сборки этой задачи, на вашей системе должен быть установлен dev пакет openssl. На ubuntu установить пакет можно командой `sudo apt-get install libssl-dev`. Сборка под другие платформы не гарантируется. На macOS должна сработать следующая последовательность действий:
|
- Для сборки этой задачи, на вашей системе должен быть установлен dev пакет openssl. На ubuntu установить пакет можно командой `sudo apt-get install libssl-dev`. Сборка под другие платформы не гарантируется.
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><b>Установка openssl на Mac OS через Homebrew</b></summary>
|
||||||
|
|
||||||
```
|
```
|
||||||
Установка openssl через Homebrew
|
$ brew install openssl@3
|
||||||
|
|
||||||
$ brew install openssl
|
После установки Homebrew предупредит вас о том, что для корректной работы библиотеки может понадобиться выставить несколько переменных окружения, нас интересует последняя:
|
||||||
|
$ export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"
|
||||||
|
|
||||||
Далее нужно указать путь до библиотеки одним из способов:
|
Важно: на вашем компьютере путь может быть другим, а именно, начинаться с префикса /opt/homebrew вместо /usr/local. Если у вас уже стоит openssl, для правильного экспорта переменной вы можете узнать этот префикс через команду:
|
||||||
|
$ brew --prefix
|
||||||
|
|
||||||
1. Установка переменной окружения через GoLand: Run -> Edit Configurations -> Environment:
|
Вы также можете выставить переменную окружения в самом GoLand: Run -> Edit Configurations -> Environment:
|
||||||
CGO_LDFLAGS=-L/usr/local/opt/openssl/lib
|
PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"
|
||||||
|
|
||||||
2. Установка переменной окружения через консоль и запуск тестов:
|
|
||||||
$ CGO_LDFLAGS=-L/usr/local/opt/openssl/lib go test -v ./blowfish/…
|
|
||||||
|
|
||||||
3. Добавить флаг прямо в коде:
|
|
||||||
// #cgo LDFLAGS: -lcrypto -L/usr/local/opt/openssl/lib
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
**Disclaimer:** Эта задача дана в учебных целях. Помните, что (1) нельзя реализовывать собственную криптографию, (2) шифр blowfish устарел, (3) в стандартной библиотеке есть pure go реализация для большинства криптографических примитивов.
|
**Disclaimer:** Эта задача дана в учебных целях. Помните, что (1) нельзя реализовывать собственную криптографию, (2) шифр blowfish устарел, (3) в стандартной библиотеке есть pure go реализация для большинства криптографических примитивов.
|
||||||
|
|
||||||
## Ссылки
|
## Ссылки
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
package blowfish
|
package blowfish
|
||||||
|
|
||||||
// #cgo LDFLAGS: -lcrypto
|
// #cgo pkg-config: libcrypto
|
||||||
// #include <openssl/blowfish.h>
|
// #include <openssl/blowfish.h>
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue