![](/img/trans.png)
[英]Compile error : fatal error: 'boost/numeric/ublas/matrix.hpp' file not found
[英]fatal error: 'boost/uuid/uuid.hpp' file not found
我正在嘗試在EOS智能合約中包含boost UUID 庫。
#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
有人能告訴我我做錯了什么嗎?
我按照你的所有步驟編譯了這段代碼
#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
,它工作正常。 使用-I
標志告訴 linker 在哪里可以找到 uuid.hpp。
我在 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
boost 庫還可以,但是,我發現文件 'sha1.hpp' 位於另一個目錄中。 所以我只是將它復制到正確的位置並且它起作用了;
sudo cp /usr/include/boost/uuid/detail/sha1.hpp /usr/include/boost/uuid/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.