boricj / numworks-rpn

RPN calculator for NumWorks
Other
36 stars 12 forks source link

Compilation error with current epsilon release #10

Closed jacopo-j closed 4 years ago

jacopo-j commented 4 years ago

Hello, I tried building the current epsilon release (11.2.0) with rpn app included and the compilation fails with the following error:

/home/jacopo/epsilon-11.2.0/apps/apps_container_storage.cpp:24: undefined reference to `Rpn::App::Snapshot::Snapshot()'
collect2: error: ld returned 1 exit status
Makefile:126: recipe for target 'build/device/epsilon.elf' failed
make: *** [build/device/epsilon.elf] Error 1

Everything works fine if I leave the rpn app out of the build. I don't know if this issue is caused by #9, any idea what it could be? Thanks

boricj commented 4 years ago

NumWorks doesn't provide a stable API for third-party apps so things tend to break fairly regularly. I haven't touched the RPN app in quite some time, so there's probably a fair amount of bitrotting going on.

boricj commented 4 years ago

I've fixed the build system and all the bitrotting, works on the simulator. Hopefully that won't break again for some time...

jacopo-j commented 4 years ago

Thank you for fixing, however I just tried to build and this time compilation fails with:

In file included from <command-line>:0:0:
./apps/rpn/app.h:32:23: error: cannot declare field ‘Rpn::App::m_rpnPromptController’ to be of abstract type ‘Rpn::RpnPromptController’
   RpnPromptController m_rpnPromptController;
                       ^~~~~~~~~~~~~~~~~~~~~

Is it possible that you missed something?

boricj commented 4 years ago

It builds fine from scratch (both simulator, N0100 and N0110 firmware) on my side. Are you building with numworks/epsilon@fbd18db as a base?

Your toolchain could also be too old, I'm building inside a Debian 10 container:

jblbeurope@penguin:~/epsilon$ gcc --version
gcc (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

jblbeurope@penguin:~/epsilon$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
jacopo-j commented 4 years ago

I was using the latest release instead of the latest commit. It does compile now, thank you.

wawachief commented 4 years ago

It works, thank you for the update : I can't use a calculator without a rpn mode ! Flashing the new firmware to the N100 device via dfu-utils was a bit tricky though. Let's hope numworks fixes that.