我最近安装了CMake,以便编写代码以在C ++中使用Libbitcoin,但是我很难过,我试图在GitHub here上构建示例代码。它令人讨厌。我无法在CMake中正确链接库,这是我的代码。我读过,有人说我应该尝试Autoconf,但是我不知道如何启动Autoconf,因为我对Autoconf一无所知。我有CMake 3.16,并用brew安装了Libbitcoin,但是别名是在/ usr / local / include中为该库制作的,我在Mac OS X 10.15上。 CMake运行正常,但是在运行“ make”时,它将响应:
Scanning dependencies of target CreateAddr
main.cxx:1:10: fatal error: bitcoin/bitcoin.hpp: No such file or directory
1 | #include <bitcoin/bitcoin.hpp>
| ^~~~~~~~~~~~~~~~~~~~~
答案 0 :(得分:0)
在不知道安装细节的情况下很难确保,但是看来您的包含目录路径可能与main.cxx
中为标头指定的内容重叠。 include_directories()
调用告诉编译器包括以下目录的头文件:
/usr/local/include/bitcoin
然后,在main.cxx
中,将文件包含在bitcoin/bitcoin.hpp
中。结合这些,表明文件位于此处:
/usr/local/include/bitcoin/bitcoin/bitcoin.hpp
错误指出找不到标头,所以也许您打算将其放在此处:
/usr/local/include/bitcoin/bitcoin.hpp
在这种情况下,只需从main.cxx
文件中删除相对目录路径,如下所示:
#include <bitcoin.hpp>
此外,您想正确地链接到您的libbitcoin
库。不建议使用link_directories()
。相反,您可以直接在对target_link_libraries()
的调用中指定libbitcoin
库的完整路径。该库可能不在/usr/local/include/bitcoin
中。进行了这些更改后,CMake中的最后几行看起来将更像这样:
include_directories(/usr/local/include/bitcoin)
add_executable(CreateAddr main.cxx)
target_link_libraries(CreateAddr PUBLIC /your/path/to/libs/libbitcoin.so)