ciusss89
27-09-2012, 10:18
Ciao gente, al momento mi sto provando a fare il porting di un'applicazione windows in linux per un progetto del politecnico, spero possiate darmi una mano:
Gli step compiuti e come ho ragionato :
Ho ipotizzato che prima di guardare il corpo del main, mi convenga mettere apposto tutto quello che include il main come librerie e funzioni e headers, ho quindi provveduto a ricercarmi le librerie mancanti e quelle equivalenti, e gli header necessari. Ho poi "verificato" la compatibilità della sostituzioni che effettuavo.
Ho proseguito creando un main vuoto (hello world) che includesse solo ed esclusivamente quello che include il main originale ( praticamente richiama un main.h). La compilazione di questo parziale risultato ha dato esito positivo.
(L'applicazione si appoggia a gnu_radio, e libusb, spesso è stato sufficiente sostiture l'equivalente xxx_win32.h con xxx_linux.h, o adattare qualche chiamata tipo xxx_win32 () in xxx_linx( ) )
Quando "ho unito" il main al resto del corpo del progamma, ecco il disastro, una gran quantita di errori, ma non credo dovuti al parte precedente.
Applicazione orginale (Source.zip)
L'ibrido da me creato (Ibrido.zip)
L'unione che non funzione (Err.zip)
Estrarre il contenuto per compilare [ $ g++ main.cpp -o test.o ]. Al momento il mio obiettivo è far compilare il binario.
Chi ha scritto il codice, non fornisce dettagli riguardo la piattaforma usata per la compilazione ne le modalità ...
COMPILANDO IL MAIN HELLO WORLD
giuse@book-dk:~/MAIL_B/IBRID0$ cat main.cpp
#include "main.h"
using namespace std;
int main(int argc ,char *argv[])
{
cout << "Hello world!" << endl;
return 0;
}
giuse@book-dk:~/MAIL_B/IBRID0$ g++ main.cpp -o test.o
In file included from main.h:7:0,
from main.cpp:1:
fx2.h:64:1: warning: ‘typedef’ was ignored in this declaration [enabled by default]
giuse@book-dk:~/MAIL_B/IBRID0$
COMPILANDO IL MAIN
giuse@book-dk:~/MAIL_B/ERR$ g++ main.cpp -o test.o
In file included from main.h:7:0,
from main.cpp:68:
fx2.h:64:1: warning: ‘typedef’ was ignored in this declaration [enabled by default]
main.cpp: In function ‘int main(int, char**)’:
main.cpp:313:32: error: ‘DeleteFile’ was not declared in this scope
main.cpp:368:5: error: ‘HANDLE’ was not declared in this scope
main.cpp:368:12: error: expected ‘;’ before ‘hStdout’
main.cpp:369:5: error: ‘hStdout’ was not declared in this scope
main.cpp:369:32: error: ‘STD_OUTPUT_HANDLE’ was not declared in this scope
main.cpp:369:49: error: ‘GetStdHandle’ was not declared in this scope
main.cpp:370:5: error: ‘COORD’ was not declared in this scope
main.cpp:370:11: error: expected ‘;’ before ‘coord’
main.cpp:371:5: error: ‘CONSOLE_SCREEN_BUFFER_INFO’ was not declared in this scope
main.cpp:371:32: error: expected ‘;’ before ‘bInfo’
main.cpp:379:42: error: ‘bInfo’ was not declared in this scope
main.cpp:379:64: error: ‘SetConsoleCursorPosition’ was not declared in this scope
main.cpp:425:44: error: ‘bInfo’ was not declared in this scope
main.cpp:425:49: error: ‘GetConsoleScreenBufferInfo’ was not declared in this scope
main.cpp:427:64: error: ‘SetConsoleCursorPosition’ was not declared in this scope
main.cpp:436:48: error: ‘bInfo’ was not declared in this scope
main.cpp:436:70: error: ‘SetConsoleCursorPosition’ was not declared in this scope
main.cpp:514:39: error: ‘DeleteFile’ was not declared in this scope
main.cpp:584:35: error: ‘DeleteFile’ was not declared in this scope
giuse@book-dk:~/MAIL_B/ERR$
QUI IL MAIN (http://pastebin.com/0zERitLe), include esattamente main.h. Gli errori di compilazione non credo siano causati dalla lavoro fin'ora svolto.
FILE (http://www.sendspace.com/filegroup/w8EB5raTL38IVlZ3RFShbr2kNv0HDiXp)
Piccolo dettaglio io di c++ non so nulla.
Gli step compiuti e come ho ragionato :
Ho ipotizzato che prima di guardare il corpo del main, mi convenga mettere apposto tutto quello che include il main come librerie e funzioni e headers, ho quindi provveduto a ricercarmi le librerie mancanti e quelle equivalenti, e gli header necessari. Ho poi "verificato" la compatibilità della sostituzioni che effettuavo.
Ho proseguito creando un main vuoto (hello world) che includesse solo ed esclusivamente quello che include il main originale ( praticamente richiama un main.h). La compilazione di questo parziale risultato ha dato esito positivo.
(L'applicazione si appoggia a gnu_radio, e libusb, spesso è stato sufficiente sostiture l'equivalente xxx_win32.h con xxx_linux.h, o adattare qualche chiamata tipo xxx_win32 () in xxx_linx( ) )
Quando "ho unito" il main al resto del corpo del progamma, ecco il disastro, una gran quantita di errori, ma non credo dovuti al parte precedente.
Applicazione orginale (Source.zip)
L'ibrido da me creato (Ibrido.zip)
L'unione che non funzione (Err.zip)
Estrarre il contenuto per compilare [ $ g++ main.cpp -o test.o ]. Al momento il mio obiettivo è far compilare il binario.
Chi ha scritto il codice, non fornisce dettagli riguardo la piattaforma usata per la compilazione ne le modalità ...
COMPILANDO IL MAIN HELLO WORLD
giuse@book-dk:~/MAIL_B/IBRID0$ cat main.cpp
#include "main.h"
using namespace std;
int main(int argc ,char *argv[])
{
cout << "Hello world!" << endl;
return 0;
}
giuse@book-dk:~/MAIL_B/IBRID0$ g++ main.cpp -o test.o
In file included from main.h:7:0,
from main.cpp:1:
fx2.h:64:1: warning: ‘typedef’ was ignored in this declaration [enabled by default]
giuse@book-dk:~/MAIL_B/IBRID0$
COMPILANDO IL MAIN
giuse@book-dk:~/MAIL_B/ERR$ g++ main.cpp -o test.o
In file included from main.h:7:0,
from main.cpp:68:
fx2.h:64:1: warning: ‘typedef’ was ignored in this declaration [enabled by default]
main.cpp: In function ‘int main(int, char**)’:
main.cpp:313:32: error: ‘DeleteFile’ was not declared in this scope
main.cpp:368:5: error: ‘HANDLE’ was not declared in this scope
main.cpp:368:12: error: expected ‘;’ before ‘hStdout’
main.cpp:369:5: error: ‘hStdout’ was not declared in this scope
main.cpp:369:32: error: ‘STD_OUTPUT_HANDLE’ was not declared in this scope
main.cpp:369:49: error: ‘GetStdHandle’ was not declared in this scope
main.cpp:370:5: error: ‘COORD’ was not declared in this scope
main.cpp:370:11: error: expected ‘;’ before ‘coord’
main.cpp:371:5: error: ‘CONSOLE_SCREEN_BUFFER_INFO’ was not declared in this scope
main.cpp:371:32: error: expected ‘;’ before ‘bInfo’
main.cpp:379:42: error: ‘bInfo’ was not declared in this scope
main.cpp:379:64: error: ‘SetConsoleCursorPosition’ was not declared in this scope
main.cpp:425:44: error: ‘bInfo’ was not declared in this scope
main.cpp:425:49: error: ‘GetConsoleScreenBufferInfo’ was not declared in this scope
main.cpp:427:64: error: ‘SetConsoleCursorPosition’ was not declared in this scope
main.cpp:436:48: error: ‘bInfo’ was not declared in this scope
main.cpp:436:70: error: ‘SetConsoleCursorPosition’ was not declared in this scope
main.cpp:514:39: error: ‘DeleteFile’ was not declared in this scope
main.cpp:584:35: error: ‘DeleteFile’ was not declared in this scope
giuse@book-dk:~/MAIL_B/ERR$
QUI IL MAIN (http://pastebin.com/0zERitLe), include esattamente main.h. Gli errori di compilazione non credo siano causati dalla lavoro fin'ora svolto.
FILE (http://www.sendspace.com/filegroup/w8EB5raTL38IVlZ3RFShbr2kNv0HDiXp)
Piccolo dettaglio io di c++ non so nulla.