Chowdhury-DSP / BYOD

Build-your-own guitar distortion!
GNU General Public License v3.0
424 stars 22 forks source link

[BUG] Compilation error in Eigen Memory.h #332

Open diegosfbri opened 10 months ago

diegosfbri commented 10 months ago

Describe the bug Failing to compile

To Reproduce Steps to reproduce the behavior:

  1. Compile
  2. cmake -Bbuild -DCMAKE_BUILD_TYPE=Release THIS WORKS OK
  3. cmake --build build --config Release --parallel 4 FAILS 4.Error BYOD/modules/RTNeural/RTNeural/../modules/Eigen/Eigen/src/Core/util/Memory.h:1245:12: error: no member named 'construct_at' in namespace 'std' using std::construct_at;
    
    In file included from <built-in>:1:
    In file included from /Users/diego.brihuega/Documents/Projects/BYOD/build/CMakeFiles/BYOD.dir/cmake_pch.hxx:5:

Desktop (please complete the following information):

jatinchowdhury18 commented 10 months ago

Thanks for reporting the issue! There's a few things that could be the issue here.

First off, std::construct_at is a C++20 feature, so you may need to double-check that your compiler supports C++20, and the construct_at feature. I believe AppleClang 12.0.5 should satisfy this requirement, but I'm not 100% sure. In our CI pipelines we're using AppleClang14.0.0. Next, you may need to clear you CMake cache, in case the C++17 setting was left over from a previous build, and hasn't been cleared.

Next, please make sure that your clone of the BYOD repository is at the latest commit on the main branch, and that your submodules are up to date. In particular, the modules/RTNeural submodule should be at commit 113f6e2b61c04e534db722d55bc61b5064d6fdf1.

Finally, when running your CMake build, you may prefer to specify individual build targets, to see if the error occurs with all of them. For example: cmake --build build --config Release --parallel 4 --target BYOD_VST3