Forum: PC-Programmierung Simulink auf RaspberryPI, wie in S-Funktion librarys linken?


von Ein Gast (Gast)


Lesenswert?

In der aktuellen MatLab Version gibt es die Möglichkeit über ein Toolkit 
Simulink Modelle auf externen Hardware wie dem RaspberryPI auszuführen.
Des weitern kann man innerhalb dieser Programme S-Functions erstellen, 
in welchen man C-Code wie zum Beispiel für den Zugriff auf die Hardware 
integrieren kann, was soweit auch gut funktioniert.
Ich wollte nun jedoch aus dem Simulink-Programm über eine S-Function auf 
eine MySQL Datenbank zugreifen und hatte hierzu ein einfaches 
Testprogramm probiert:
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <mysql/mysql.h>
4
5
int main(int argc, char **argv)
6
{
7
  printf("MySQL client version: %s\n", mysql_get_client_info());
8
9
  exit(0);
10
}
Dieses lässt sich auf dem RaspberryPI nach der Installation der 
Entsprechenden Client Library problemlos compilieren:
1
sudo apt-get update
2
sudo apt-get install libmysqlclient-dev
3
gcc -o mysql_test mysql_test.c -lmysqlclient
Wenn ich diesen Code jedoch in die S-Function kopiere und die Ausführung 
auf dem PI starte bekomme ich bei der darauf gestarteten Compilierung 
die folgende Fehlermeldung:
1
undefined reference to `mysql_get_client_info'
Ich hatte nun versucht an an verschiedenen Stellen der Konfiguration der 
S-Funclion und der C/C++ Codegenerierung "-lmysqlclient" einzufügen, 
worauf ich sinngemäß die Fehlermeldung bekam, dass er in den 
verschiedenen Pfanden auf dem lokalen Windows PC die Library nicht 
finden konnte. Jedoch wird die Kompilierung wie ich dies verstanden habe 
auf dem PI durchgeführt, wobei "-lmysqlclient" auch im Makefile nicht 
vorkommt. Dies manuell dort neben der standartmäßigen Linkungen 
einzutragen ist auch nicht möglich, da es bei jeder Neukompilierung 
ebenfalls neu geschieben wird.

Hat jemand eine Idee, wie man externe Librarys korrekt in die S-Function 
einbindet?

von goldeneyes1987 (Gast)


Lesenswert?

Habe die ähnliche Problematik, hast du bereits herausgefunden wohin man 
library pfade einfügen kann?
Danke und Gruß
goldeneyes

von Markus R. (markusrr)


Lesenswert?

Ist zwar schon recht lange her, aber da man den Post recht weit oben bei 
Google findet hier potentiell die Lösung: Man kann wohl aus matlab raus 
mit dem Kommando xmakefilesetup eine Gui für die make comfig starten, 
während das entsprechende Modell offen ist.

Quelle: 
https://engineer.john-whittington.co.uk/2015/06/simulink-raspberry-pi-driver-blocks/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.