Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.5.1 build failure on Fedora 39 with gcc 13.2.1 #148

Open
ycollet opened this issue Oct 2, 2023 · 3 comments
Open

2.5.1 build failure on Fedora 39 with gcc 13.2.1 #148

ycollet opened this issue Oct 2, 2023 · 3 comments

Comments

@ycollet
Copy link

ycollet commented Oct 2, 2023

When I tried to build Fundamental on F39 with gcc 13.2.1, I met the following error message:

src/Logic.cpp:137:31: error: reference to ‘LightButton’ is ambiguous
  137 | using VCVBezelLightBigWhite = LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>;
      |                               ^~~~~~~~~~~
In file included from ../include/rack.hpp:36,
                 from src/plugin.hpp:1,
                 from src/Logic.cpp:1:
../include/componentlibrary.hpp:890:8: note: candidates are: ‘template<class TBase, class TLight> struct rack::componentlibrary::LightButton’
  890 | struct LightButton : TBase {
      |        ^~~~~~~~~~~
src/Logic.cpp:121:8: note:                 ‘template<class TBase, class TLight> struct LightButton’
  121 | struct LightButton : TBase {
      |        ^~~~~~~~~~~
src/Logic.cpp: In constructor ‘LogicWidget::LogicWidget(Logic*)’:
src/Logic.cpp:150:51: error: ‘VCVBezelLightBigWhite’ was not declared in this scope; did you mean ‘VCVBezelLightBig’?
  150 |                 addParam(createLightParamCentered<VCVBezelLightBigWhite>(mm2px(Vec(12.7, 26.755)), module, Logic::B_PARAM, Logic::B_BUTTON_LIGHT));
      |                                                   ^~~~~~~~~~~~~~~~~~~~~
      |                                                   VCVBezelLightBig
src/Logic.cpp:150:73: error: no matching function for call to ‘createLightParamCentered<<expression error> >(rack::math::Vec, Logic*&, Logic::ParamId, Logic::LightId)’
  150 |                 addParam(createLightParamCentered<VCVBezelLightBigWhite>(mm2px(Vec(12.7, 26.755)), module, Logic::B_PARAM, Logic::B_BUTTON_LIGHT));
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/rack.hpp:35:
../include/helpers.hpp:174:15: note: candidate: ‘template<class TParamWidget> TParamWidget* rack::createLightParamCentered(math::Vec, engine::Module*, int, int)’
  174 | TParamWidget* createLightParamCentered(math::Vec pos, engine::Module* module, int paramId, int firstLightId) {
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
../include/helpers.hpp:174:15: note:   template argument deduction/substitution failed:
src/Logic.cpp:150:73: error: template argument 1 is invalid
  150 |                 addParam(createLightParamCentered<VCVBezelLightBigWhite>(mm2px(Vec(12.7, 26.755)), module, Logic::B_PARAM, Logic::B_BUTTON_LIGHT));
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [../compile.mk:87: build/src/Logic.cpp.o] Error 1
make: *** Waiting for unfinished jobs....
@ycollet
Copy link
Author

ycollet commented Oct 10, 2023

I fix:
Replace:

using VCVBezelLightBigWhite = LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>;

By:

using VCVBezelLightBigWhite = struct rack::componentlibrary:LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>;

@ycollet
Copy link
Author

ycollet commented Oct 10, 2023

The same problem occured with 2.6.0

@cbix
Copy link

cbix commented Apr 18, 2024

Can't reproduce on Arch Linux with gcc 13.2.1, building Fundamental v2.6.0 against Rack v2.5.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants