Tôi mới vào Xcode và khi tôi xây dựng đoạn mã sau (một MWe), tôi nhận được lỗi sauBiểu tượng Xcode C++ :: Duplicate cho Kiến trúc x86_64
ld: 3 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Tôi có ba tác phẩm như sau;
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;
}
Tôi đã thử phương pháp khác nhau được đề cập trên stack overflow như biến đổi "Xây dựng tích cực Kiến trúc Chỉ" thành "Có" và một số người khác nhưng lỗi vẫn vẫn tồn tại.
Cảm ơn bạn đã đề xuất, tôi đã thử theo cách sau nhưng lỗi vẫn tồn tại. 1. Vệ sinh dự án. 2. Chọn "Main.cpp" 3. Sản phẩm -> Thực hiện Hành động -> Biên dịch "Main.cpp" 4. Lặp lại Bước 3, cho "A.cpp" và "B.cpp" 5. Chạy Dự án . 6. Có lỗi tương tự. Tôi cũng đã cố gắng biên dịch chỉ "Main.cpp" và sau đó chạy nhưng XCode xây dựng dự án hoàn chỉnh.
Bạn có thể giải thích cách biên dịch và xây dựng "Main.cpp" một cách độc lập không. P.S. Tôi đang sử dụng XCode 6.1.1 – Ahmad
@Ahmad bạn vẫn không nhận được nó. Bạn đang bao gồm cùng một nguồn trong ** hai đơn vị dịch khác nhau **. Mã trong 'A.cpp' được biên dịch thành một đơn vị dịch đơn thành' Ao', sau đó * cùng mã * là '# include'-ed thành' main.cpp' (đó là vấn đề ** thực **) . Lựa chọn thứ hai trong câu trả lời này là lý tưởng. Làm việc đó đi. – WhozCraig
@WhozCraig Cảm ơn bạn. Tôi đã sử dụng tùy chọn thứ hai, giải quyết được sự cố. – Ahmad