Jump to content

[C/C++] Python Include- bzw. Library-Pfad in C-Makefile des RED-Brick einbinden?


Recommended Posts

Hallo liebe Community,

 

ich bin noch ein ziemlicher Tinkerforge-Neuling - aber schon jetzt total begeistert, wie schnell man damit Dinge zum Laufen bekommt :)

 

Leider komme ich aktuell bei einer Sache nicht wirklich weiter und bin dazu auch im Web nicht fündig geworden:

Mein Tinkerforge-System besteht aus 1x IO-4 Bricklet, 1x IO-16 Bricklet, 1x Master Brick und 1x RED-Brick. Dazu habe ich eine Anwendung in C geschrieben, die aus mehreren .c und .h Dateien besteht. Diese kann ich über den Brick Viewer auf den RED-Brick laden und dort mittels GCC compilieren, das entsprechende Makefile ist im Anhang. Soweit funktioniert das alles auch bestens, das Programm läuft, wie es soll...

Nun möchte ich gerne ein Python Script (aus einer eigenen Datei heraus, z.B. "test.py") aus meinem C-Programm heraus starten können. Das gelingt mir in meiner Windows-Umgebung auch, hier nutze ich Python 3.5 und Dev-C++ mit GCC. In den Projekt-Optionen teile ich dem Linker u.a. über die Optionen -I<Pfad_zu"/include"> bzw. -L<Pfad_zu"/libs"> -lpython35 mit, wo er die entsprechenden Python Incudes bzw. Bibliotheken findet.

In meinem C-Programm binde ich die Datei "<Python.h>" ein, alles compiliert sauber und auch die Ausführung der Datei "test.py" aus meinem C-Programm heraus funktioniert - bislang allerdings eben nur unter Windows.

 

Ich scheitere derzeit noch daran, das angehängte Makefile so zu ergänzen, dass dem GCC Compiler auf dem RED-Brick bekannt gemacht wird, wo er dort die entsprechenden Python Includes bzw. Libraries findet. Mit einem "C:\...\..."

hinter den Optionen -I bzw. -L ist das beim RED-Brick ja nicht getan  ;)

 

Würde mich freuen, wenn mir da jemand einen heißen Tipp geben kann - vielen Dank vorab!

 

 

Makefile

Link zu diesem Kommentar
Share on other sites

Auf dem RED Brick ist standardmäßig das Python3 Development Package nicht installiert. Du musst also zuerst über die Console python3-dev nachinstallieren. Am einfachsten geht das wenn der RED Brick Internetverbindung hat:

 

sudo apt-get install python3-dev

 

Dann kannst du das python3-config Tool nutzen, das dir sagt wo die Header und Libs sind und welche C- und LD-Flags zu setzen sind. Dazu einfach die CFLAGS und LIBS Zeilen in deinem Makefile so abändern:

 

CFLAGS=-c -Wall -I/usr/include/tinkerforge $(shell python3-config --cflags)
LIBS=-ltinkerforge -lpthread $(shell python3-config --ldflags)

 

Auf dem RED Brick wirst du allerdings Python 3.4 haben, nicht 3.5.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...