template <class... ARGS>
std::string format_string(const char* fmt, ARGS&&... args) {
std::string str;
format_string_append(str, fmt, args...);
return std::move(str);
}
template <class... ARGS>
std::string format_string(const std::string& fmt, ARGS&&... args) {
return format_string(fmt.c_str(), args...);
:wq
54 | return std::move(str);
| ^
/opt/Paddle-1.8.3/paddle/fluid/string/string_helper.h:54:23: note: remove 'std::move' call
/opt/Paddle-1.8.3/paddle/fluid/string/string_helper.h: In instantiation of 'std::string paddle::string::format_string(const char*, ARGS&& ...) [with ARGS = {const char*}; std::string =
std::__cxx11::basic_string<char>]':
/opt/Paddle-1.8.3/paddle/fluid/framework/io/fs.cc:115:71: required from here
/opt/Paddle-1.8.3/paddle/fluid/string/string_helper.h:54:23: error: moving a local object in a return statement prevents copy elision [-Werror=pessimizing-move]
/opt/Paddle-1.8.3/paddle/fluid/string/string_helper.h:54:23: note: remove 'std::move' call
/opt/Paddle-1.8.3/paddle/fluid/string/string_helper.h: In instantiation of 'std::string paddle::string::format_string(const char*, ARGS&& ...) [with ARGS = {const char*, const char*, co
nst char*}; std::string = std::__cxx11::basic_string<char>]':
/opt/Paddle-1.8.3/paddle/fluid/framework/io/fs.cc:345:78: required from here
/opt/Paddle-1.8.3/paddle/fluid/string/string_helper.h:54:23: error: moving a local object in a return statement prevents copy elision [-Werror=pessimizing-move]
/opt/Paddle-1.8.3/paddle/fluid/string/string_helper.h:54:23: note: remove 'std::move' call
[ 5%] Built target data_feed_proto
5条答案
按热度按时间3xiyfsfu1#
看到您之前提的 issue,是在 alpine 上编译的么?请教了 @tianshuo78520a ,目前应该是只支持在 centos / ubuntu 上的编译。可以尝试使用官网的镜像。
bf1o4zei2#
您好,我也是在alpine上进行源码编译遇到了这个问题,请问您有解决办法吗?如果有希望可以分享一下,谢谢~
q5iwbnjs3#
我编译也有同样的错误,编译环境wsl2,ubuntu20.4
deikduxw4#
在CmakeLists.txt加这么一句
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=pessimizing-move")
如果不想从头重新编译,可以找到出问题的build.make同目录下的flags.make
在CXX_FLAGS那一行加上-Wno-error=pessimizing-move
文件比较多,直接上sed
sed -i 's/^CXX_FLAGS(.*)$/CXX_FLAGS\1 -Wno-error=pessimizing-move /'
find paddle -type f -name "flags.make"
k4ymrczo5#
this quick and dirty hack works for me. If would be better if the maintainer could add
-Wno-error=pessimizing-move
to theCMakeLists.txt
what needs it.