致命错误:找不到'boost/uuid/uuid.hpp'文件
fatal error: 'boost/uuid/uuid.hpp' file not found
我正在尝试在EOS智能合约中包含boostUUID库。
#include <string>
#include <eosio/crypto.hpp>
#include <boost/uuid/uuid.hpp>
我点击此链接安装 boost 只是将版本更改为 1.73.0 : http://janisz.github.io/2013/11/27/install-boost-on-ubuntu/
我执行的命令列表是:
sudo apt-get update
sudo apt-get -y --purge remove libboost-all-dev libboost-doc libboost-dev
sudo apt-get -y install build-essential g++ python-dev autotools-dev libicu-dev libbz2-dev
cd /tmp
wget http://downloads.sourceforge.net/project/boost/boost/1.73.0/boost_1_73_0.tar.gz
tar -zxvf boost_1_73_0.tar.gz
cd boost_1_73_0
./bootstrap.sh --prefix=/usr/local
cpuCores=`cat /proc/cpuinfo | grep "cpu cores" | uniq | awk '{print $NF}'`
echo "Available CPU cores: "$cpuCores
sudo ./b2 --with=all -j $cpuCores install
在此之后:
./bootstrap.sh --prefix=/usr && ./b2 stage threading=multi link=shared
./b2 install threading=multi link=shared && ln -svf detail/sha1.hpp /usr/include/boost/uuid/sha1.hpp
./b2 命令打印
LN:无法创建符号链接"/usr/include/boost/uuid/sha1.hpp": 权限被拒绝
然后:
sudo apt update
sudo apt install libboost-all-dev
并尝试编译智能合约:
eosio-cpp documentid.cpp -o documentid.wasm
它的给出错误:
fatal error: 'boost/uuid/uuid.hpp' file not found
有人能说出我做错了什么吗?
我在 ubuntu 20.04 中安装 AlmaBTE 时遇到了类似的问题
/home/sy/applications/almabte-v1.3.2/src/superlattice_builder.cpp:38:10: fatal error: boost/uuid/sha1.hpp: No such file or directory
38 | #include <boost/uuid/sha1.hpp>
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [src/CMakeFiles/superlattice_builder.dir/build.make:63: src/CMakeFiles/superlattice_builder.dir/superlattice_builder.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:474: src/CMakeFiles/superlattice_builder.dir/all] Error 2
make: *** [Makefile:95: all] Error 2
提升库还可以,但是,我发现文件"sha1.hpp"位于另一个目录中。所以我只是把它复制到正确的地方,它就起作用了;
sudo cp /usr/include/boost/uuid/detail/sha1.hpp /usr/include/boost/uuid/
我按照您的所有步骤编译了此代码
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <iostream>
int main() {
boost::uuids::uuid uuid = boost::uuids::random_generator()();
std::cout << uuid << std::endl;
return 0;
}
然后我编译了c++ -Wall -std=c++17 -g -I /usr/local/include/ uuid_test.cpp -o uuid_test
而且效果很好。告诉链接器在哪里可以找到 uuid.hpp 是通过-I
标志完成的。
相关文章:
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 什么是"#include <boost/functional/hash.hpp> "?
- 使用Vulkan hpp vk::enumerateInstanceVersion()会导致segfault
- 如何将class.cpp和class.hpp编译为一个.o文件
- g++ -I 和 -L 命令来查找不起作用的 .hpp 文件
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- 在 XSLT 1.0 中生成 UUID
- Gnuplot_i.hpp C++接口绘制局部变量而不是文件
- 致命错误:找不到'boost/uuid/uuid.hpp'文件
- BGL:当包含 random_spanning_tree.hpp 时,对strong_components的调用无法编译
- 查找蓝牙设备的服务的 uuid
- 造成致命错误:boost/fusion/iterator/equal_to.hpp 没有这样的文件或目录
- 无法使包含.hpp文件与其中的2个文件一起使用
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 无法打开包含文件'Graphics.hpp'没有这样的文件或目录,Visual Studio的其他包含不起作用
- 编译器正在查找.当"实施"完全在"我的"中时的CPP文件.HPP文件
- 我的项目中某些仅标头文件不能包含使用 CMake 和 Vscode 的"SFML/Graphics.hpp"
- QtCreator使用CMAKE_C_FLAGS来解释C++(hpp)标头
- 如何正确使用hpp文件和cpp文件中的嵌套类
- Generate boost::uuids::uuid from boost::compute::detail::sha