WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

RTW: Subsystem mit S-Function darin compilieren

 

EliteTUM
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 70
Anmeldedatum: 21.04.11
Wohnort: München
Version: ---
     Beitrag Verfasst am: 11.04.2013, 08:45     Titel: RTW: Subsystem mit S-Function darin compilieren
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem: Ich habe ein Subsystem, in dem unter anderem auch eine C-S-Function steckt. Nun will jemand, dem ich dieses Subsystem + mex32-File weitergegeben habe dieses Subsystem wiederum mit RTW compilieren. Am liebsten möchten wir diesen Prozess durchführen ohne die Quelldateien weiterzugeben, da das nur zu Datenoverhead führt.

Bisher haben wir versucht wie hier von MathWorks beschrieben vorzugehen:

http://www.mathworks.de/support/sol.....ex.html?solution=1-3JK8LD

Ausgangssituation: Meine S-Funcion besteht aus einigen C- und H-Files. Die S-Functionhauptdatei my_sfunc.c wird zu einer mex32-Datei my_sfunc.mexw32 compiliert.

1. ICH schicke ihm ein Model my_model.mdl mit dem Subsystem "my_subsystem" in dem wiederum die S-Function "my_sfunction" steckt sowie die my_sfunction.obj und my_sfunction.mexw32.
2. ER erzeugt im Ordner des Models my_model.mdl einen Ordner "my_subsystem_grt_rtw" (weil unser Target GRT ist), schiebt die "my_sfunction.obj" dort hinein.
3. Per Rechtsklick auf das Subsystem und "Realtime Workshop" > "Build Subsystem" > "Build" startet er den Build-Prozess.

Jetzt kommen folgende Fehlermeldungen:

Code:
### Linking ...
   C:\PROGRA~1\MATLAB~2\sys\perl\win32\bin\perl C:\PROGRA~1\MATLAB~2\rtw\c\tools\mkvc_lnk.pl my_subsystem.lnk my_subsystem.obj rtGetInf.obj rtGetNaN.obj rt_logging.obj rt_matrx.obj rt_nonfinite.obj rt_printf.obj  grt_main.obj rt_sim.obj     my_sfunction.obj
   link /RELEASE  /INCREMENTAL:NO /NOLOGO -subsystem:console,5.0  kernel32.lib  ws2_32.lib mswsock.lib advapi32.lib libcpmt.lib      @my_subsystem.lnk @my_subsystem_ref.rsp -out:..\my_subsystem.exe
LINK : warning LNK4098: Standardbibliothek "LIBCMTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
FasQrgDrvRcv.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_my_sfunction" in Funktion "_my_subsystem_initialize".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mexWarnMsgTxt" in Funktion "_ssWarning".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mexCallMATLAB" in Funktion "__ssFatalError".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxCreateString" in Funktion "__ssFatalError".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxGetClassID" in Funktion "_ssGetDTypeIdFromMxArray".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxGetPr" in Funktion "_mexFunction".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SetOutputs" in Funktion "_mdlOutputs".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_InitApplParam" in Funktion "_mdlOutputs".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_ReadInputs" in Funktion "_mdlOutputs".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxCreateDoubleMatrix_700" in Funktion "__ProcessMexSfunctionCmdLineCall".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxIsNumeric" in Funktion "__ProcessMexSfunctionCmdLineCall".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxIsComplex" in Funktion "__ProcessMexSfunctionCmdLineCall".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxGetN" in Funktion "__ProcessMexSfunctionCmdLineCall".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxGetM" in Funktion "__ProcessMexSfunctionCmdLineCall".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mexErrMsgTxt" in Funktion "__ProcessMexSfunctionCmdLineCall".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_InitOutputPorts" in Funktion "_mdlInitializeSizes".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_InitInputPorts" in Funktion "_mdlInitializeSizes".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SFunc_Init" in Funktion "_mdlInitializeSizes".
my_sfunction.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mxCalloc" in Funktion "__CreateSimStruct".
..\my_subsystem.exe : fatal error LNK1120: 19 nicht aufgelöste externe Verweise.


Vorallem die Funktionen "SetOutputs", "InitApplParam", "ReadInputs", "InitOutputPorts", "InitInputPorts" und "SFunc_Init" kommen mir bekannt vor, da ich diese selbst geschrieben habe. manche von denen stehen auch in einer eigenen C-File, folglich existiert dafür auch eine obj-File. Andere habe ich in "my_sfunction.c" definiert. Wenn ich die OBJ-Files jetzt auch mitgebe und diese in "my_subsystem_grt_rtw" schiebe bekomme ich dennoch die selben Fehler. Ich gehe davon aus, weil dem Linker nicht mitgeteilt wird, dass er diese beachten muss, oder? Meine Frage nun, wo liegt mein Fehler und wie kann ich das Subsystem mit dieser Methode compilieren lassen?

Bin für jede Hilfe dankbar!
_________________

- EliteTUM
_____________________________________
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.