如果在 make 过程中缺少 git 存储库的头文件,那么应该将其放在哪里?

如果在 make 过程中缺少 git 存储库的头文件,那么应该将其放在哪里?

我正在安装来源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并安装成功链接应用程序所需的库。

相关内容