Как связать приложение Rust Wasm с libpq через wasm-pack? - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь создать приложение NodeJS со слоем базы данных Wasm. Я использую Rust, Diesel в качестве драйвера базы данных и wasm-pack в качестве компилятора WebAssembly.

Когда я пытаюсь создать свой сервис с wasm-pack, он не может связать библиотеку libpq. Переменная окружения PQ_LIB_DIR установлена, и diesel-cli работает без каких-либо проблем, но когда я пытаюсь скомпилировать свою службу, она завершается с ошибкой:

error: linking with `rust-lld` failed: exit code: 1
  = note: rust-lld: error: unable to find library -llibpq

Как я могу это исправить?

Моя система:

  • ОС : Windows 10
  • Rust : 1,38,0
  • wasm-pack : 0.8.1
  • дизель : 1.4.0
  • PostgreSQL : 12

1 Ответ

0 голосов
/ 04 ноября 2019

libpq доступен внутри двоичного файла установки postgreSQL

Например, Сайт бинарной загрузки PosgreSQL Если открыть zip-дистрибутив postgresql-12.0-1-windows-x64-binaries.zip, вы можете увидеть эти 2 файла:

  • pgsql\lib\libpq.dll
  • pgsql\lib\libpq.lib

Вам нужно указать LD_LIBRARY_PATH или вы можете указать -L в аргументах компилятора, чтобы указать путь к папке, который будет автоматическивыберите эти файлы

Если вы использовали программу установки, тот же файл должен находиться там внутри папки установки

Вы также можете сослаться на эту ссылку stackoverflow Как мне указать Rust, где искатьстатическая библиотека?

- EDIT -

Чтобы объединить библиотеку C внутри дистрибутива веб-сборки, мы можем использовать это руководство - Компиляция существующего модуля C в WebAssembly

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...