Hallo zusammen,
ich habe ein ähnliches Problem wie bereits schon
Beitrag "Intel Edison Breakout Board mraa-Bibliothek" behandelt hat.
Auf meinem Intel Edison möchte ich gerne die MRAA Bibliothek nutzen.
Weil das Projekt etwas umfangreicher ist, nutze ich einen Win7 Rechner
mit VisualStudio und VisualGDB als Hostsystem und debugge somit den
Intel Edison.
Wenn ich wie im obigen Topic beschrieben mit vi auf dem Edison selbst
das Programm schreibe und kompiliere (inkl. des lmraa Flags) kann ich
die Bibliothek wunderbar nutzen. Jetzt möchte ich diesen Schritt
allerdings auslassen und die Bibliothek direkt auf meinem Build-System
mit einbinden.
Ich möchte dazu folgenden Code erfolgreich kompilieren
1 | #include "mraa.h"
|
2 | int
|
3 | main(int argc, char** argv)
|
4 | {
|
5 | const char* board_name = mraa_get_platform_name();
|
6 | fprintf(stdout, "hello mraa\n Version: %s\n Running on %s\n", mraa_get_version(), board_name);
|
7 | mraa_deinit();
|
8 | return MRAA_SUCCESS;
|
9 | }
|
Leider bekomme ich keinen Buildprozess hin
1 | 1>D:/Toolchain/i686-pokysdk-mingw32/usr/bin/i586-poky-linux/i586-poky-linux-g++.exe -o Debug/HelloWorld -Wl,-gc-sections --sysroot=D:\Toolchain\core2-32-poky-linux -L../../../Bibliotheken/MRAA/include -Wl,--start-group Debug/DateTime.o Debug/Edison.o Debug/GPIO_extender.o Debug/HelloWorld.o Debug/Helpers.o Debug/I2CDevice.o Debug/SerialNumber.o -Wl,--rpath='$ORIGIN' -Wl,--end-group
|
2 | 1>Debug/HelloWorld.o: In function `main':
|
3 | 1>D:\HelloWorld\HelloWorld\HelloWorld\HelloWorld.cpp(12): error : undefined reference to `mraa_get_platform_name'
|
4 | 1>D:\HelloWorld\HelloWorld\HelloWorld\HelloWorld.cpp(13): error : undefined reference to `mraa_get_version'
|
5 | 1>collect2.exe : error : ld returned 1 exit status
|
Er findet also anscheinend die von der Bibliothek zur Verfügung
gestellten Funktionen nicht (oder auch die Bibliothek selbst). Das
Verzeichnis ../../Bibliotheken/MRAA/ ist identisch zum Git-Verzeichnis
aus https://github.com/intel-iot-devkit/mraa
In den angehängten Screenshots vom VisualGDB habe ich meine aktuellen
Einstellungen direkt mit drangehängt.
Wenn ich bei den Common-Flags das -lmraa hinten dran hänge, dann schlägt
bereits der Kompile des Testprogramms fehl und ich habe leider nichts
gewonnen.
Hat hier jemand einen Lösungsvorschlag? Auch über Hinweise würde ich
mich natürlich sehr freuen!
Beste Grüße,
Thomas