如果沒有特殊情況,建議使用paddle 2.1 ,paddle 2.1 有編譯好的現成的C庫,具體在最下邊介紹。
具體部分報錯信息:
/home/chris/work/Paddle/third_party/eigen3/src/extern_eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h:128:35: error: implicitly-declared ‘constexpr Eigen::TensorMap<Eigen::Tensor<const paddle::platform::complex64, 1, 1, long int>, 0, Eigen::MakePointer>::TensorMap(const Eigen::TensorMap<Eigen::Tensor<const paddle::platform::complex64, 1, 1, long int>, 0, Eigen::MakePointer>&)’ is deprecated [-Werror=deprecated-copy]
128 | : m_xpr(xpr), m_functor(func) {}
| ^
In file included from /home/chris/work/Paddle/third_party/eigen3/src/extern_eigen3/unsupported/Eigen/CXX11/Tensor:149,
from /home/chris/work/Paddle/paddle/fluid/platform/bfloat16.h:28,
from /home/chris/work/Paddle/paddle/fluid/framework/data_type.h:20,
from /home/chris/work/Paddle/paddle/fluid/framework/tensor_util.h:18,
from /home/chris/work/Paddle/paddle/fluid/framework/tensor_util.cc:15:
經嘗試,是因為gcc(gcc9)版本太新導致的,使用把本機gcc切換成gcc8解決,官網建議使用gcc 8.2.0。
linux中gcc和g++命令是鏈接的: x86_64-linux-gnu-gcc-(版本號) 和 x86_64-linux-gnu-g++-(版本號),執行文件在/usr/bin/下
可通過ls -l /usr/bin/gcc/g++或ll /usr/bin/gcc/g++查看gcc和g++當前默認使用版本。
安裝gcc-8和g++-8,具體安裝方式不同系統不一樣,請自行百度。我是debian(ubuntu基於debian,所以類似)系統: apt-get install gcc-8、apt-get install g++-8
安裝后在/usr/bin/找x86_64-linux-gnu-gcc-8和x86_64-linux-gnu-g++-8,如果能找到說明安裝成功!
刪除/usr/bin/gcc和/usr/bin/g++軟連接:
sudo rm /usr/bin/gcc
sudo rm /usr/bin/g++
重新創建gcc和g++軟連接:
ln -s /usr/bin/x86_64-linux-gnu-gcc-8 /usr/bin/gcc
ln -s /usr/bin/x86_64-linux-gnu-g++-8 /usr/bin/g++
嘗試重新執行make 或 make -j(並行數)。
希望可以幫到你~OV0
2021-07-11更新:
paddlepaddle inference 2.1版本,已經有現成編譯好的2.1C庫,如果沒有特殊需要,強烈推薦直接下載現成的C編譯庫,因為在編譯過程中,會遇到各種問題,如 需要大量下載-編譯github項目,編譯過程中也會遇到一些其他的庫依賴問題,github網速也不穩定,時好時壞,所以建議下載已編譯好的C 庫。
https://paddleinference.paddlepaddle.org.cn/v2.1/user_guides/download_lib.html#linux