Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25

    [C] Multiple definition of main

    ciao a tutti,
    vi espongo il problema qui di seguito:
    nel progetto ho due file main.c e main2.c

    main.c
    codice:
    int main (...) {
    ....
    char* arg[] = {"./main2.c" , "argomento"};
    execve ("./main2.c", arg, NULL);
    }

    main2.c
    codice:
    int main(...){
    printf ("%s", argv[1]);
    }

    quando eseguo il makefile con netbeans mi solleva il seguente errore: Multiple definition of main

    qualcuno mi saprebbe dire come potrei risolvere questo problema?

    Vi ringrazio di cuore.
    fede0693

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Il main deve essere uno solo nei sorgenti di un progetto! E non puoi eseguire il sorgente!
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    ciao Oregon, grazie mille per la tua risposta.
    lo so ma purtroppo sono obbligato ad avere più main nello stesso progetto. sto sviluppando un progetto di sistemi operativi per un esame. non so proprio come fare...sono bloccato da giorni su vari problemi che man mano sto cercando di risolvere ma con scarso successo xd

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non puoi essere obbligato a fare una cosa che non si può fare!
    Probabilmente la soluzione al tuo problema è un'altra.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    mmm...la system call exec è usata in modo corretto?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    No...te l'ho detto prima...non puoi eseguire il sorgente... Devi prima compilare l'altro progetto
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    ok ma se creo due progetti (ognuno con il proprio main) , poi come faccio a passare come argomento il filename dell'altro progetto a execve()?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Che devi fare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2015
    Messaggi
    29
    Nel target del tuo makefile devi mettere
    gcc main1.c -o prog1
    gcc main2.c -o prog2

    e l'execve deve chiamare prog2

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    25
    ok parto dal problema in origine praticamente nel main creo una coda e un semaforo, dopo di che genero con una fork un processo padre con i relativi figli (i figli rappresentano i pazienti).
    Il figlio apre un file e sceglie a random una riga (sintomo), dopo di che deve essere messo in coda...
    se io richiamo l enqueue() all interno del codice del figlio, i valori head e tail non vengono aggiornati. così ho pensato di rimandare il controllo ad un altro file che si occupa di inserire in coda l'elemento. scusami se mancano degli apostrofi ma sono da cellulare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.