Sono nuovo di Xcode e quando costruire il seguente codice (un MWE), ottengo il seguente erroreSimboli Xcode C++ :: duplicati per l'Architettura x86_64
ld: 3 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Ho tre file come segue;
main.cpp
#include "B.cpp"
int main() {
square(5);
return 0;
}
B.cpp
#include "A.cpp"
void square(int n){
display(n*n);
}
A.cpp
#include <iostream>
using namespace std;
void display(int num){
cout<<num;
}
Ho provato diversi metodi menzionato su stack overflow come il cambiamento "Build attivo Architettura Solo" su "Sì" ed alcuni altri, ma l'errore ancora persiste.
Grazie per il suggerimento, ho provato nel modo seguente ma l'errore persiste ancora. 1. Pulire il progetto. 2. Selezionare "Main.cpp" 3. Prodotto -> Esegui azione -> Compila "Main.cpp" 4. Ripetere il passaggio 3, per "A.cpp" e "B.cpp" 5. Eseguire il progetto . 6. Ha lo stesso errore. Ho anche provato a compilare solo "Main.cpp" e quindi eseguire ma XCode crea il progetto completo.
Potete per favore elaborare come compilare e compilare "Main.cpp" in modo indipendente. P.S. Sto usando XCode 6.1.1 – Ahmad
@Ahmad non lo stai ancora ottenendo. Stai includendo la stessa fonte in ** due diverse unità di traduzione **. Il codice in 'A.cpp' è compilato come una singola unità di traduzione in' Ao', quindi lo * stesso codice * è '# include' -ed in' main.cpp' (che è il ** problema ** reale) . La seconda opzione in questa risposta è l'ideale. Fai quello. – WhozCraig
@WhozCraig Grazie. Ho usato la seconda opzione, che ha risolto il problema. – Ahmad