Я устанавливаю из источника , и хотя make
я получаю сообщение об ошибке, что файл отсутствует:
CXX src/math/libbitcoin_la-crypto.lo
CXX src/math/libbitcoin_la-elliptic_curve.lo
src/math/elliptic_curve.cpp:23:10: fatal error: secp256k1.h: No such file or directory
#include <secp256k1.h>
^~~~~~~~~~~~~
compilation terminated.
Я думаю, этот файл заголовка можно найти здесь , чтобы я мог скачать его, чтобы включить его. Но я не знаю, где это поставить.
Кроме того, я не уверен, полезно ли это делать.
В readme говорится: «Минимальная сборка libbitcoin требует boost и libsecp256k1». поэтому я уже установил libsecp256k1
в своей системе. Но я не уверен, что именно это они имели в виду.
В принципе можно поместить заголовочные файлы куда угодно, Вам нравится - пока Вы говорите compilier, где они используют соответствующее -I
директива:
g++ -Ipath/to/include/ ...
, Если компилятор запускается через make
, часто возможно передать такие опции через соответствующее FLAGS
переменная вместо того, чтобы пытаться изменить Make-файл. Для C++, который обычно был бы CXXFLAGS
, таким образом, Вы могли сделать что-то как:
make "CXXFLAGS=-Ipath/to/include/"
, Если Make-файл уже указывает местоположение для частных заголовочных файлов программного обеспечения, Вы могли бы просто поместить его туда. Или Вы могли поместить его в одно из поисковых местоположений по умолчанию - который можно найти для gcc/g ++ путем выполнения
: | gcc -E -v -
и прокручивания вниз к эти #include <...> search starts here
раздел. Для установленных пользователями заголовков вероятно, необходимо избежать всех тех местоположений кроме /usr/local/include
, так как системные пакеты могут перезаписать файлы в других.
Однако в Вашем конкретном случае, необходимо просто установить libsecp256k1-dev
пакет, который установит заголовочный файл в [1 110] и также установит библиотеки, требуемые успешно связать приложение.