Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C:Arduino] undefined reference to `operator new(unsigned in

MAGx2 09 Lis 2010 22:18 2495 0
  • #1
    MAGx2
    Poziom 8  
    Witam.
    Piszę pewny program mający na celu wyświetlenie (jak na razie) menu i później różnych sub menu. Jak na razie stworzyłem szkielet programu i zabrałem się za tworzenie klasy menu, która obsłuży wyświetlanie różnych menu. Niestety przy próbie kompilacji wyskakuje mi błąd:
    Code:
    o: In function `Menu::showMenu()':
    
    undefined reference to `operator new(unsigned int)

    A tu cały kod:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Dodam że używam 64 bitowego Linuxa Mandriva 2010.0

    Dodano po 1 [godziny] 2 [minuty]:

    Dobra przekopując internet znalazłem rozwiązanie.
    Po
    Code:
    #include <LiquidCrystal.h>

    Należy wstawić:
    Code:

    #include <stdlib.h>

    void* operator new(size_t size) { return malloc(size); }
    void operator delete(void* ptr) { free(ptr); }

    A tu dlaczego
    Cytat:
    By default, the Arduino IDE and libraries does not use the operator new and operator delete. It does support malloc() and free(). So the solution is to implement new and delete operators for yourself, to use these functions.

    Code:
    Code:

    #include <stdlib.h> // for malloc and free
    void* operator new(size_t size) { return malloc(size); }
    void operator delete(void* ptr) { free(ptr); }




    Try adding that above your setup() and loop() in your main sketch.

    Note that ANY use of dynamic memory allocations wastes a bit more memory besides the requested amounts. In the microcontroller world, it's usually better not to use new/delete/malloc/free at all, and to statically declare all of your storage instead.