我正在安装来源当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.
我认为可以找到这个头文件这里所以我可以下载它并包含它。但我不知道把它放在哪里。
另外,我不确定这是否有用。
这自述说“最小的 libbitcoin 构建需要 boost 和 libsecp256k1。”所以我libsecp256k1
已经在我的系统上安装了。但我不确定这是他们的意思。
答案1
原则上,你可以把头文件放在任何你喜欢的地方 - 只要你使用适当的-I
指令告诉编译器它们在哪里:
g++ -Ipath/to/include/ ...
如果编译器是通过 运行的,make
通常可以通过适当的FLAGS
变量传递这些选项,而不是尝试修改 Makefile。对于 C++,通常是CXXFLAGS
,因此您可以执行以下操作:
make "CXXFLAGS=-Ipath/to/include/"
如果 Makefile 已经指定了软件私有头文件的位置,您可以直接将其放在那里。或者,您可以将其放在默认搜索位置之一 - 您可以通过执行以下代码找到 gcc/g++
: | gcc -E -v -
并向下滚动到该#include <...> search starts here
部分。对于用户安装的标头,可能应该避免除 之外的所有位置/usr/local/include
,因为系统包可能会覆盖其他位置的文件。
但是在您的具体情况下,您应该简单地安装该libsecp256k1-dev
包,它将安装头文件/usr/include
并安装成功链接应用程序所需的库。