Andrea993 Pubblicato: 23 Novembre 2011 Segnalazione Share Pubblicato: 23 Novembre 2011 Sto studiando symbian c++ dal manuale "Symbian OS Basics Workbook v3.1" che ho trovato sul forum. Secondo me per chi conosce solo l'ANSI C++ il manuale è il migliore, perchè spiega passo a passo le basi del symbian fino a raggiungere un livello avanzato. Non avevo mai trovato una documentazione su symbian così completa e ordinata! Devo dire che più studio symbian, più lo reputo il miglior OS per cellulare e mi dispiace la scelta di NOKIA nel passare a Windows Phone 7. A parte l'introduzione nel studiare il manuale mi sono imbattuto nel secondo esercizio e carbide non me lo compila!!!! Premetto che sto usando l'SDK "Nokia_Symbian3_SDK_v1.0" e il manuale tratta esercizi per S60v3 ma comunque le interfacce grafiche dovrebbero funzionare. Il progetto si chiama "S60MemoryLab" e questi sono gli errori che mi segnala: avkon.hrh: No such file or directory avkon.rh: No such file or directory declaration syntax error declaration syntax error declaration syntax error declaration syntax error declaration syntax error declaration syntax error eikon.rh: No such file or directory S60MemoryLab.rsg: No such file or directory the file 'aknapp.h' cannot be opened the file 'akndoc.h' cannot be opened the file 'eikstart.h' cannot be opened undefined identifier 'AppDllUid' undefined identifier 'CAknApplication' undefined identifier 'CAknDocument' undefined identifier 'CApaDocument' undefined identifier 'CEikAppUi' undefined identifier 'CreateDocumentL' undefined identifier 'GLDEF_C' undefined identifier 'LOCAL_C' undefined identifier 'TUid' Come mai questi errori? Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 24 Novembre 2011 Segnalazione Share Pubblicato: 24 Novembre 2011 (modificato) Concordo, il workbook e' un ottimo manuale. Cerca in ...\epoc32\ dove si trova il file avkon.hrh ed aggiungi il path al file .mmp tramite SYSTEMINCLUDE probabilmente si trova dentro \epoc32\include quindi dovrai aggiungere al .mmp: SYSTEMINCLUDE \epoc32\include poi ricompila il .rss e verifica se la compilazione va a buon fine. Il grande svantaggio di Symbian e' che nonostante sia altamente modulare, il suo codice e' molto difficile da manutenere... questo problema e' stato completamente risolto per quanto riguarda lo strato di GUI, con l'adozione di Qt, ma persiste per quanto riguarda il core del sistema. Quindi non potra' mai crescere tanto velocemente quanto i sistemi operativi concorrenti, che in pochi anni sono riusciti a colmare il gap che li separava da Symbian, ed ora puntano al sorpasso... Modificato 24 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 24 Novembre 2011 Autore Segnalazione Share Pubblicato: 24 Novembre 2011 Ho provato, adesso ritonrna 100 errori ma non capisco quale sia il problema di fondo, perchp mi dà errore a quasi tutte le linee del *document.h. Riporto comunque gli errori, magari tu riesci a venirne fuori: Description C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabApplication.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabDocument.h:7 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\akndoc.h:23 (included from: the file 'savenotf.h' cannot be opened C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabApplication.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabDocument.h:7 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\akndoc.h:23 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\eikdoc.h:19 C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabAppUi.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabAppUi.h:7 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\eikapp.h:19 C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLab.cpp:4) C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\eikstart.h:20 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\apparc.h:27 (included from: the file 'apaidpartner.h' cannot be opened C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabAppUi.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabAppUi.h:11 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\aknappui.h:23 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\eikspane.h:22 (included from: the file 'eiksrvc.h' cannot be opened C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabApplication.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabDocument.h:7 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\akndoc.h:23 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\eikdoc.h:19 C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabAppUi.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabAppUi.h:7 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\eikapp.h:19 C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabContainer.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabContainer.h:7 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\coecntrl.h:21 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\w32std.h:22 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\fntstore.h:23 C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLab.cpp:4) C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\eikstart.h:20 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\apparc.h:21 (included from: the file 'e32svr.h' cannot be opened C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabApplication.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabDocument.h:7 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\akndoc.h:23 (included from: undefined identifier 'MSaveObserver' illegal constructor/destructor declaration C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabAppUi.cpp:4) C:\Labs\Lab_04304.cb1\starter\inc\S60MemoryLabAppUi.h:11 C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\aknappui.h:22 (included from: undefined identifier 'CEikApplication' C:\Labs\Lab_04304.cb1\starter\src\S60MemoryLabApplication.cpp:4) Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 25 Novembre 2011 Segnalazione Share Pubblicato: 25 Novembre 2011 (modificato) Sembrerebbe che non trovi il file akndoc.h C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\akndoc.h:23 E' un errore molto simile al precedente Aggiungi il path \epoc32\mw al file .mmp tramite SYSTEMINCLUDE Modificato 25 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 25 Novembre 2011 Autore Segnalazione Share Pubblicato: 25 Novembre 2011 (modificato) è lo stesso systeminclude che avevo scritto precedentemente...È strano però Cioè forse hai sbagliato di scrivere perchè sarebbe epoc32\include\mw Comunque ho controllato, il file C:\Nokia\devices\Nokia_Symbian3_SDK_v1.0\epoc32\include\mw\akndoc.h esiste Modificato 25 Novembre 2011 da Andrea993 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 25 Novembre 2011 Segnalazione Share Pubblicato: 25 Novembre 2011 (modificato) No, non e' lo stesso del precedente... il precedente era: SYSTEMINCLUDE \epoc32\include questo e': SYSTEMINCLUDE \epoc32\include\mw sono due include differenti e devi metterli entrambi, se vuoi che entrambi i file avkon.hrh e akndoc.h vengano trovati. Modificato 25 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 25 Novembre 2011 Autore Segnalazione Share Pubblicato: 25 Novembre 2011 Ho risolto così: SYSTEMINCLUDE \epoc32\include \epoc32\include\mw \epoc32\include\platform \epoc32\include\platform\mw Ora il progetto parte sull'emulatore, ma l'emulatore mostra una schermata azzurrina e invece di partire il programma si spegne l'emulatore. Non me ne va bene una Comunque Marco grazie mille per l'aiuto Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 25 Novembre 2011 Segnalazione Share Pubblicato: 25 Novembre 2011 (modificato) Considerando che e' un progetto per 3rd, ti conviene provare a installare l'sdk 3rd, compilarlo e vedere se gira bene... Modificato 25 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 26 Novembre 2011 Autore Segnalazione Share Pubblicato: 26 Novembre 2011 Con l'sdk per 3rd funziona bene! Ma come mai? cioè solitamente i programmi per 3rd girano anche su S^3! Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 26 Novembre 2011 Segnalazione Share Pubblicato: 26 Novembre 2011 E infatti, se tu lo compili con 3rd e lo fai girare su S^3 non c'e' problema (a meno di qualche binary break) Se invece lo compili su S^3, non e' garantito che giri su 3rd... Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 26 Novembre 2011 Autore Segnalazione Share Pubblicato: 26 Novembre 2011 Tu solitamente che sdk usi per compilare? Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 26 Novembre 2011 Segnalazione Share Pubblicato: 26 Novembre 2011 (modificato) Io uso 3rd MR perche' e' l'unico che permette di generare un pacchetto che girera' su: 3rd / 3rd FP1 / 3rd FP2 / 5th / S^3 / Belle Ma, per ora, puoi benissimo trascurare questi aspetti. Li vedrai poi piu' avanti, dopo che avrai ampliato le tue conoscenze sulla piattaforma e soprattutto, dopo che avrai realizzato qualche prodotto che vorrai poi distribuire. E' superfluo che approfondisci adesso queste tematiche... e' meglio per te se al momento ti concentri su quello che sono i vari componenti del sistema, ed i vari costrutti di programmazione presenti nel linguaggio. Modificato 26 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 27 Novembre 2011 Autore Segnalazione Share Pubblicato: 27 Novembre 2011 (modificato) Scusa ancora se abuso della tua disponibilità, ma ho riscontrato un nuovo problema. Usando l'SDK per gli s60v3 quando creo un nuovo progetto di tipo "GUI Application" alla compilazione ricevo questi errori: BEGIN failed--compilation aborted at C:/Nokia/devices/S60_3rd_FP2_SDK_v1.1/epoc32/tools/perllib/args.pm line 19. BEGIN failed--compilation aborted at C:\Nokia\devices\S60_3rd_FP2_SDK_v1.1\epoc32\tools/cshlpcmp.pl line 58. the file 'prova0_0xe344a5dc.hlp.hrh' cannot be opened undefined identifier 'KGeneral_Information' Il progetto l'ho chiamato "prova0". Non riesco a venirne fuori e mi dispiace visto che ho letto almeno 200 pagine in inglese questa settimana... Modificato 27 Novembre 2011 da Andrea993 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 27 Novembre 2011 Segnalazione Share Pubblicato: 27 Novembre 2011 (modificato) Ad occhio e croce direi che i file di help non sono stati compilati correttamente, quindi ti manca il relativo file .hrh Puoi eliminare completamente i file relativi all'help e tutti quanti i vari riferimenti ad esso (KGeneral_Information) oppure, ti tocca capire come mai il file di help non e' stato compilato correttamente e non e' stato generato il file prova0_0xe344a5dc.hlp.hrh Purtroppo, come stai gia' scoprendo, gia' solo per la compilazione si possono verificare innumerevoli problematiche... e come se non bastasse, gli esempi a volte sono incompleti oppure necessitano di alcune modifiche per compilare. Modificato 27 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 27 Novembre 2011 Autore Segnalazione Share Pubblicato: 27 Novembre 2011 (modificato) Sì me ne sto accorgendo purtroppo. Ma esattamente i file di help a cosa servono? Perchè vedo alcuni #ifdef _HELP_AVAILABLE_, ma cosa sta ad indicare il fatto che _HELP_AVAILABLE_ sia definito? Modificato 27 Novembre 2011 da Andrea993 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 27 Novembre 2011 Segnalazione Share Pubblicato: 27 Novembre 2011 (modificato) il file di help contiene l'help visualizzabile nell'applicazione selezionando "opzioni > guida" cosa sta ad indicare il fatto che _HELP_AVAILABLE_ sia definito quello lo vedi dal codice... a seconda che quella macro sia definita o meno, verranno compilate alcune parti o altre... Modificato 27 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 28 Novembre 2011 Autore Segnalazione Share Pubblicato: 28 Novembre 2011 Ho risolto così: Siccome ho letto che l'sdk per s60v3 non è compatibile con carbide 3.3 ho installato carbide 2.7 Poi mi dava ancora errore per l'help quindi ho aggiunto un #undef _HELP_AVAILABLE_ in AppUi. Questa però è una soluzione provvisoria, visto che più avanti penso proprio che farò uso dell'help. Il file "prova0_0xe344a5dc.hlp.hrh" continua a non venire creato, dove devo guardare per risolvere il problema? Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 28 Novembre 2011 Segnalazione Share Pubblicato: 28 Novembre 2011 credo si trovi nel makefile... guarda se c'e' un file .mak o qualcosa del genere. Al piu', lancia una ricerca di "prova0_0xe344a5dc.hlp" dentro tutti i file. Link to comment Condividi su altri siti More sharing options...
Andrea993 Pubblicato: 28 Novembre 2011 Autore Segnalazione Share Pubblicato: 28 Novembre 2011 (modificato) Il file è build_help.mk # ============================================================================ # Name : build_help.mk # Part of : prova1 # ============================================================================ # Name : build_help.mk # Part of : prova1 # # Description: This make file will build the application help file (.hlp) # # ============================================================================ do_nothing : @rem do_nothing # build the help from the MAKMAKE step so the header file generated # will be found by cpp.exe when calculating the dependency information # in the mmp makefiles. MAKMAKE : prova1_0xEB3EBEBE.hlp prova1_0xEB3EBEBE.hlp : prova1.xml prova1.cshlp Custom.xml cshlpcmp prova1.cshlp ifeq (WINSCW,$(findstring WINSCW, $(PLATFORM))) md $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help copy prova1_0xEB3EBEBE.hlp $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help endif BLD : do_nothing CLEAN : del prova1_0xEB3EBEBE.hlp del prova1_0xEB3EBEBE.hlp.hrh LIB : do_nothing CLEANLIB : do_nothing RESOURCE : do_nothing FREEZE : do_nothing SAVESPACE : do_nothing RELEASABLES : @echo prova1_0xEB3EBEBE.hlp FINAL : do_nothing Credo che queste righe: BLD : do_nothing CLEAN : del prova1_0xEB3EBEBE.hlp del prova1_0xEB3EBEBE.hlp.hrh Stiano a significare che quando si cancellano i file di compilazione debba cancellare anche prova1_0xEB3EBEBE.hlp e prova1_0xEB3EBEBE.hlp.hrh. Ma quando si compila non crea nessun file. Quindi è qui il problema o sbaglio? Questo è il progetto "prova1" che ho creato con carbide 2.7 Modificato 28 Novembre 2011 da Andrea993 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 28 Novembre 2011 Segnalazione Share Pubblicato: 28 Novembre 2011 (modificato) vedi qui: prova1_0xEB3EBEBE.hlp : prova1.xml prova1.cshlp Custom.xml cshlpcmp prova1.cshlp il comando per compilare il file di help credo sia cshlpcmp.exe prova a lanciarlo a mano e verifica se viene creato il file .hrh Modificato 28 Novembre 2011 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora