Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
5 years, 11 months ago.
Why this code does not compile with the GCC ARM toolchain?
The following code compiles fine with the online compiler (using the ARM toolchain):
#include "mbed.h" InterruptIn myPins[] = { InterruptIn(p21), InterruptIn(p22), InterruptIn(p23) }; int main() {}
But it doesn't when trying to compile offline with the Mbed CLI using the GNU ARM toolchain:
Compile [ 98.9%]: main.cpp [Error] InterruptIn.h@62,7: 'mbed::NonCopyable<T>::NonCopyable(const mbed::NonCopyable<T>&) [with T = mbed::InterruptIn]' is private within this context [ERROR] In file included from d:/src/arm/mbed/mbed/drivers/UARTSerial.h:27:0, from d:/src/arm/mbed/mbed/mbed.h:73, from .\main.cpp:1: d:/src/arm/mbed/mbed/drivers/InterruptIn.h: In copy constructor 'mbed::InterruptIn::InterruptIn(const mbed::InterruptIn&)': d:/src/arm/mbed/mbed/drivers/InterruptIn.h:62:7: error: 'mbed::NonCopyable<T>::NonCopyable(const mbed::NonCopyable<T>&) [with T = mbed::InterruptIn]' is private within this context class InterruptIn : private NonCopyable<InterruptIn> { ^~~~~~~~~~~ In file included from d:/src/arm/mbed/mbed/platform/PlatformMutex.h:20:0, from d:/src/arm/mbed/mbed/drivers/BusIn.h:22, from d:/src/arm/mbed/mbed/mbed.h:56, from .\main.cpp:1: d:/src/arm/mbed/mbed/platform/NonCopyable.h:218:5: note: declared private here NonCopyable(const NonCopyable &); ^~~~~~~~~~~ .\main.cpp: At global scope: .\main.cpp:3:79: note: synthesized method 'mbed::InterruptIn::InterruptIn(const mbed::InterruptIn&)' first required here InterruptIn myPins[] = { InterruptIn(p21), InterruptIn(p22), InterruptIn(p23) }; ^