Fehler beim Complieren bei algobase.h

  • moin,

    bin am verzweifeln... versuche einen SMA PV - Logger zu kompilieren und bekomme die folgende Fehlermeldung. Ich kann nicht erkennen ob Pakete fehlen oder ob ich im Makefile andere Optionen speziell für den Raspberry angeben muss. habe den RPI 3.

    i@raspberrypi:/home/pi/sma-rs485-inverters-master/build$ make

    [ 25%] Building CXX object CMakeFiles/http://ardexa-sma.dir/src/main.o

    In file included from /usr/include/c++/6/bits/char_traits.h:39:0,

    from /usr/include/c++/6/ios:40,

    from /usr/include/c++/6/ostream:38,

    from /usr/include/c++/6/iostream:39,

    from /home/pi/sma-rs485-inverters-master/src/main.cpp:29:

    /usr/include/c++/6/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2

    min(const _Tp& __a, const _Tp& __b, _Compare __comp)

    hab den Rest mal in den Dateianhang gepackt, ist übersichtlicher

    :wallbash:

  • hallo, erst einmal vielen Dank für die ersten Reaktionen...

    das soll ein Logger für Photovoltaic Daten werden. habe 4 SMA Wechselrichter im Einsatz.

    Die Software stammt von GITHUB. https://github.com/ardexa/sma-rs485-inverters

    sie besteht aus 2 Teilen, ein Teil von SMA (Yasdi) auf den dann der Teil des Loggers zugreift und die WR über RS485 abfragt. Die Yasdi Software wurde erfolgreich übersetzt und läuft. Teile von Yasdi werden dann beim kompilieren des Loggers eingebunden, das funktioniert auch. dann kommt aber der Zeitpunkt, wo mit besagtem Fehler abgebrochen wird.

    Der GCC läuft in der Version...

    pi@raspberrypi:/home/pi/sma-rs485-inverters-master/build$ gcc --version

    gcc (Raspbian 6.3.0-18+rpi1) 6.3.0 20170516



    gruß

    Achim

  • ja sag ich doch, wenn man mal google bemüht, findet man diesen Fehler relativ häufig, auch nicht unbedingt bei Raspberry, liegt evtl. an der gcc Version. ich kann es aber nicht so richtig verstehen.

  • Es liegt nicht am Raspberry, das passiert auch auf Debian.

    Das bringt die Sache durch den Compiler:

  • so steht es schon in der main.cpp..... verstehe nur nicht die Anordnung der geschweiften Klammer


    #ifdef __cplusplus

    extern "C" {

    #endif

    #include "libyasdi.h"

    #include "libyasdimaster.h"

    #include "tools.h"

    #ifdef __cplusplus

    }

    #endif

    #include <iostream>

    #include <stdio.h>

    #include <unistd.h>

    #include <vector>

    #include <string>

    #include <ctime>

    #include <map>

    #include <sstream>

    #include <iomanip>

    #include "utils.hpp"

    #include "arguments.hpp"


    #define DEVICE_MAX 50

    #define SIZE_NAME 64

    #define MAXDRIVERS 10

    #define MAX_CHANNEL_COUNT 500

    using namespace std;

  • sorry hatte den Rest nicht gesehen, es geht um #undef... probiere ich morgen mal aus... melde mich.

    daas hat schon mal geklappt, konnte nicht mehr warten :)

    aber next problem:

    pi@raspberrypi:/home/pi/sma-rs485-inverters-master/build$ make

    Scanning dependencies of target ardexa-sma

    [ 25%] Building CXX object CMakeFiles/http://ardexa-sma.dir/src/main.o

    /home/pi/sma-rs485-inverters-master/src/main.cpp:45:39: fatal error: stdafx.h: Datei oder Verzeichnis nicht gefunden

    #include "stdafx.h" /* fix gcc 6 */

    ^

    compilation terminated.

    CMakeFiles/http://ardexa-sma.dir/build.make:62: die Regel f�r Ziel �CMakeFiles/http://ardexa-sma.dir/src/main.o� scheiterte

    make[2]: *** [CMakeFiles/http://ardexa-sma.dir/src/main.o] Fehler 1

    CMakeFiles/Makefile2:67: die Regel f�r Ziel �CMakeFiles/http://ardexa-sma.dir/all� scheiterte

    make[1]: *** [CMakeFiles/http://ardexa-sma.dir/all] Fehler 2

    Makefile:127: die Regel f�r Ziel �all� scheiterte

    make: *** [all] Fehler 2

    pi@raspberrypi:/home/pi/sma-rs485-inverters-master/build$

  • Ganz sicher!

    Es ist zwar Knoppix, aber das ist ganz eindeutig ein Linux:

  • OK, hatte ich auch gemacht... habe jetzt, nach einfügen der "#undef" noch nicht cmake gestartet sondern nur das make erneut aufgerufen. vielleicht liegt es daran. werde ich nachher noch mal probieren.

    Trotzdem erst einmal vielen Dank für die Unterstützung.

  • so, hab das ganze Verzeichnis gelöscht und alles noch mal von Github geladen, die #undef reingeschrieben kompiliert und fertig... Läuft!!!

    Vielen Dank euch allen

    Gruß

    Achim

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!