C++ 致命错误:';boost/uuid/uuid.hpp';找不到文件

C++ 致命错误:';boost/uuid/uuid.hpp';找不到文件,c++,boost,ubuntu-18.04,smartcontracts,eos,C++,Boost,Ubuntu 18.04,Smartcontracts,Eos,我正在尝试将boostUUID库包括在EOS智能合约中 #include <string> #include <eosio/crypto.hpp> #include <boost/uuid/uuid.hpp> 在此之后: ./bootstrap.sh --prefix=/usr && ./b2 stage threading=multi link=shared ./b2 install threading=multi link=shared

我正在尝试将boostUUID库包括在EOS智能合约中

#include <string>
#include <eosio/crypto.hpp>
#include <boost/uuid/uuid.hpp>
在此之后:

./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”: 拒绝许可

然后:

并试图编写智能合约:

eosio-cpp documentid.cpp -o documentid.wasm
其给出错误:

 fatal error: 'boost/uuid/uuid.hpp' file not found

有人能告诉我我做错了什么吗

我按照您的所有步骤编译了这段代码

#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;
}
#包括
#包括
#包括
#包括
int main(){
boost::uuids::uuid uuid=boost::uuids::random_生成器();

std::cout在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

你需要用sudo运行b2。你是用
sudo./b2--with=all-j$cpuCores install
运行b2的,但是当你用
/b2 install threading=multi-link=shared
运行sudo./b2--with=all-j$cpuCores install
运行b2的时候没有,我试过了
sudo./b2 install threading=multi-link=shared&&ln-svf detail/sha1.hpp/usr/include/boost/uuid/sha1.hpp
。它给出了相同的结果
ln:无法创建符号链接“/usr/include/boost/uuid/sha1.hpp”权限被拒绝
sudo./b2--with=all-j$cpuCores install
,因此
ln-svf
命令也需要sudo。只要您想做什么事情如果
sudo./b2--with=all-j$cpuCores install
运行正常,我不明白为什么要执行第二个b2命令。明白了。现在我尝试了
sudo ln-svf detail/sha1.hpp/usr/include/boost/uuid/sha1.hpp
。现在它运行成功了。但是
致命错误:“boos”找不到t/uuid/uuid.hpp文件
相同。
#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;
}
/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
sudo cp /usr/include/boost/uuid/detail/sha1.hpp /usr/include/boost/uuid/