|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 316
|
[C]Visual Studio Collegamento di file Sorgenti
Ciao ho il seguente problema sto scrivendo del codice utilizzando Visual studio->linguaggio Progetto Console Win32, ho creato 2 file .c e un header .h, quando compilo il programma mi segnala
Errore 1 error LNK2005: _mostra già definito in Prova.obj Errore 2 fatal error LNK1169: rilevato uno o più simboli definiti più volte C:\...\Prova.exe Ho compilato lo stesso codice con Dev C++ e non ho trovato nessun errore. Il programma funziona benissimo
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Suppongo che entrambi i file .c includano lo stesso .h e il .h non abbia nè #pragma once nè #include guard giusto?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 316
|
Un esempio sciocco:
// Esempio.h Codice:
extern int miavariabile; void mostra(); Codice:
#include <stdio.h>
#include "Esempio.h"
#include "b.c"
int miavariabile;
int main()
{
printf("\t Inserisci valore per la variabile: \n \t");
scanf("%d", &miavariabile);
printf("\t Hai inserito:");
mostra();
return 0;
}
Codice:
#include <stdio.h>
#include "Esempio.h"
void mostra();
void mostra()
{
printf("\t %d \n" , miavariabile);
}
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Evidentemente DevC++ha la fama che merita.
Devi aggiungere all'inizio Codice:
#pragma once Codice:
#ifndef IDENTIFICATORE_UNIVOCO_PER_L_HEADER #define IDENTIFICATORE_UNIVOCO_PER_L_HEADER //Tutto il codice dell'header #endif |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 316
|
Grazie per l'aiuto,
ho provato ad aggiungere #pragma once al .h Codice:
#pragma once extern int miavariabile; void mostra(); Errore 2 error LNK2005: _mostra già definito in b.obj Errore 3 fatal error LNK1169: rilevato uno o più simboli definiti più volte |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Scusa non ci avevo fatto caso: hai ridichiarato mostra nel file b.c.
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 316
|
Ti ringrazio nuovamente per l'aiuto e la pazienza nei miei confronti.
Codice:
#include <stdio.h>
#include "Esempio.h"
// void mostra();
void mostra()
{
printf("\t %d \n" , miavariabile);
}
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Aaaargh:
Codice:
#include "b.c" |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2007
Messaggi: 316
|
Grazie per l'aiuto, risolto |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:21.




















