Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

Geschrieben

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

Geschrieben

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.

Geschrieben
  • Autor

Ich bin genau nach dieser Anleitung vorgegangen - und was soll ich sagen: damit hat es auf Anhieb super funktioniert! Das Starten der Python Skripte aus meinem C Code heraus läuft nun auch auf dem RED-Brick einwandfrei! :D

 

Ein ganz herzliches Dankeschön für die schnelle und kompetente Hilfe!!

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...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.