Compilare da riga di comando

giovedì 13 dicembre 2007 - 11.39

mintaka Profilo | Newbie

Salve a tutti,
non so se l'argomento è coerente col tema del forum....ma io ci provo comunque!
Sto cercando di compilare del codice c++ da Matlab col comando mex.
Chi non ha dimestichezza con Matlab ma sa di compilatori e linker (non io!) non si preoccupi: Matlab non crea alcun problema, di fatto il comando mex non fa altro che richiamare il compilatore (che nello specifico è quello di Microsoft Visual Studio .NET 2003), quindi il vero problema è la riga di comando, cioè qualcuno sa come si fa a compilare da riga di comando? Gli IDE ci anno ormai disabituati a tale tecnica e io non so come fare!
In pratica ho bisogno di scrivere dei dati sulla porta seriale e uso la classe CSerialPort v1.03 (liberamente scaricabile in rete).
Uso la seguente riga di comando:

mex -g MioFile.cpp cmvision.cpp serialport.cpp StdAfx.cpp

che dice in pratica di compilare e linkare i file seguenti il parametro "-g" che a sua volta indica di creare un file affinchè in un secondo momento si possa fare il debug nell'IDE di Visual Studio.

Ricevo i seguenti errori

c:\Programmi\MATLAB71\work\CamVision\serialport.h(31) : error C2504: "CException": classe base non definita
c:\Programmi\MATLAB71\work\CamVision\serialport.h(39) : error C2061: errore di sintassi: identificatore "CDumpContext"
c:\Programmi\MATLAB71\work\CamVision\serialport.h(42) : error C2146: errore di sintassi: ";" mancante prima dell'identificatore "GetErrorMessage"
c:\Programmi\MATLAB71\work\CamVision\serialport.h(42) : error C2501: "CSerialException::CString": identificatori di tipo o classe di archiviazione mancanti
c:\Programmi\MATLAB71\work\CamVision\serialport.h(42) : warning C4183: "GetErrorMessage": tipo restituito mancante. Si presume che sia una funzione membro che restituisce "int"
c:\Programmi\MATLAB71\work\CamVision\serialport.h(49) : error C2143: errore di sintassi: ";" mancante prima di "}"
c:\Programmi\MATLAB71\work\CamVision\serialport.h(49) : warning C4183: "DECLARE_DYNAMIC": tipo restituito mancante. Si presume che sia una funzione membro che restituisce "int"
c:\Programmi\MATLAB71\work\CamVision\serialport.h(56) : error C2504: "CObject": classe base non definita
c:\Programmi\MATLAB71\work\CamVision\serialport.h(98) : error C2061: errore di sintassi: identificatore "CDumpContext"
c:\Programmi\MATLAB71\work\CamVision\serialport.h(167) : error C2143: errore di sintassi: ";" mancante prima di "}"
c:\Programmi\MATLAB71\work\CamVision\serialport.h(167) : warning C4183: "DECLARE_DYNAMIC": tipo restituito mancante. Si presume che sia una funzione membro che restituisce "int"

.....qualcuno sa dirmi se devo aggiungere qualche file di libreria nella riga di comando o ha idea di come si possa risolvere il problema?
La classe seriale usa la MFC per le eccezioni e mi sembra che non venga caricato il file afx.h.......di più non so!

NB : chi sapesse come compilare correttamente (indipendentemente da Matlab) da riga di comando o sa come usare correttamente la MFC esponga le sue idee: sono ben accette!

Grazie mille!
Mintaka
Arrivo tra 173 anni luce.
Mintaka.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5