Open mig8447 opened 4 years ago
We're building CuraEngine with g++ 4.9.2 and not getting this error.
Is the error still there when you update to the latest stable (or latest master)? Maybe something was changed in the CMake config of setting the C++ standard.
I would need to try out with master
but I want version 3.3.0 compiled because I have a GCode post-processing script that doesn't work well with later versions
@mig8447 Seems it doesn't know what to do with template parameter packs. Maybe the C++11 standard isn't enabled? You can do so by adding -std=c++11
to your compiler arguments.
Or maybe it's related to these bugs, of which one was fixed in 8.0 and the other in 8.2 (of gcc): https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47226 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85305
Tried with version 8.3.1
from devtoolset-8
package and it is not working still. Fails with the same error. I found that there are some files that define the -std flag:
./CMakeFiles/clipper.dir/flags.make:CXX_FLAGS = -O2 -DNDEBUG -Wall -static-libstdc++ -std=gnu++11
./CMakeFiles/_CuraEngine.dir/flags.make:CXX_FLAGS = -O2 -DNDEBUG -Wall -static-libstdc++ -std=gnu++11
./CMakeFiles/CuraEngine.dir/flags.make:CXX_FLAGS = -O2 -DNDEBUG -Wall -static-libstdc++ -std=gnu++11
Changed gnu++11
to c++11
and still had no effect. I will try to create a Dockerfile so the issue can be replicated by someone else. Thanks for the help
On the Pi4 I am building the current CuraEngine source using g++ 8.3.0 without a problem.
Can you try switching over to C++14? You can do that by editing this line:
Maybe your compiler is somehow interpreting the standard differently than ours.
Application Version 3.3.0
Platform Oracle Enterprise Linux 7.7
Steps to Reproduce Follow the build instructions up to the point of CuraEngine's
make
Actual Results
Expected results A successful build
Additional Information Added all the dependencies, built and installed protobuf and libArcus 3.3.0, tested with g++ 4.8.5, 4.9.2, and 7.3.1 (Latter two from
devtoolset-*
package) and still failing on the same place every time