![如果在 make 过程中缺少 git 存储库的头文件,那么应该将其放在哪里?](https://linux22.com/image/1014650/%E5%A6%82%E6%9E%9C%E5%9C%A8%20make%20%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%BC%BA%E5%B0%91%20git%20%E5%AD%98%E5%82%A8%E5%BA%93%E7%9A%84%E5%A4%B4%E6%96%87%E4%BB%B6%EF%BC%8C%E9%82%A3%E4%B9%88%E5%BA%94%E8%AF%A5%E5%B0%86%E5%85%B6%E6%94%BE%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F.png)
我正在安装来源当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
并安装成功链接应用程序所需的库。