ld:Xcode 中架构x86_64的 1 个重复符号
ld: 1 duplicate symbol for architecture x86_64 in Xcode
我一直在为这个而努力。我已经搜索了所有内容,我似乎发现的都是具有相同错误消息的问题,但涉及构建完整的iPhone应用程序或处理头文件,各种各样的东西。
我只是在编写一个简单的C++程序,我希望所有类都放在一个文件中,因为我很懒惰。不确定这是否是问题所在。这是针对一个非常简单的大学作业,但我无法继续工作,因为 Xcode 给了我这个与实际代码无关的错误(基于我所阅读的内容)。除了实际的.cpp文件之外,我没有搞砸任何东西,我什至不知道我怎么能搞砸这个。我以相同的方式完成了多项作业,以前从未遇到过这个问题。
//
// Devin Shawn Tripp
// Student ID: 11199100
// CSCE 1040!
// Hw2
//
// Created by Devin Tripp on 2/26/18.
// Copyright © 2018 Devin Tripp. All rights reserved.
//
// 6 classes - main is not a class
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include "Classes.cpp"
using namespace std;
int main(int argc, const char * argv[]) {
/* Declare Variables */
//Students stud;
int choice = 0;
/* Create Menu */
while (choice != 4) {
printf("What do you want to do: n");
printf("1: Add new Course n2: Add New Student n3: Add Enrollment n4: Quit n");
cin >> choice;
switch (choice) {
case 1:
//do something
// inventory.additem();
break;
case 2:
//do something
//stud.addStudent();
break;
case 3:
//do something
// sales.addOrder();
break;
case 4:
//do something
exit(0);
break;
default:
break;
}
}
return 0;
}
下面的文件显然包含将在main.cpp中使用的所有类。
//
// Classes.cpp
// Hw2
//
// Created by Devin Tripp on 2/28/18.
// Copyright © 2018 Devin Tripp. All rights reserved.
//
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include "Classes.hpp"
using namespace std;
#define CHUNKSIZE 2
class Courses {
public:
private:
};
class Student {
public:
void setId(int id) { stud_id = id;}
int getId() { return stud_id;}
void setName(string na) { name = na; }
string getName() { return name;}
private:
int stud_id;
string name;
};
class Students {
public:
Students() {stud_cnt = 0; stud_cap = CHUNKSIZE; studs = new Student[CHUNKSIZE];}
~Students() { delete [] studs;}
void addStudent();
private:
int stud_cnt;
int stud_cap;
Student *studs;
};
void Students::addStudent() {
int id;
string temp;
if (stud_cnt == stud_cap) {
Student *temp;
temp = new Student[stud_cap + CHUNKSIZE];
for (int i = 0;i < stud_cnt; i++) {
temp[i] = studs[i];
}
delete [] studs;
stud_cap += CHUNKSIZE;
studs = temp;
}
printf("Enter a new student ID: ");
cin >> id; cin.ignore();
printf("Enter Name: ");
cin >> temp; cin.ignore();
cout << " Got data " << temp << endl;
studs[stud_cnt].setId(id); cout << "Set ID" << endl;
studs[stud_cnt].setName(temp); cout << "Set Name" << endl;
stud_cnt += 1; cout << "inc stud count" << endl;
}
我没有使用头文件,尽管我认为问题可能出在上面,因为我没有在其中声明类。我认为你应该这样做。
这是我收到的错误消息。
Ld /Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Products/Debug/Hw2 normal x86_64
cd "/Users/devintripp/Desktop/swift projects/Hw2"
export MACOSX_DEPLOYMENT_TARGET=10.13
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -L/Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Products/Debug -F/Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Products/Debug -filelist /Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Intermediates.noindex/Hw2.build/Debug/Hw2.build/Objects-normal/x86_64/Hw2.LinkFileList -mmacosx-version-min=10.13 -Xlinker -object_path_lto -Xlinker /Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Intermediates.noindex/Hw2.build/Debug/Hw2.build/Objects-normal/x86_64/Hw2_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -stdlib=libc++ -Xlinker -dependency_info -Xlinker /Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Intermediates.noindex/Hw2.build/Debug/Hw2.build/Objects-normal/x86_64/Hw2_dependency_info.dat -o /Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Products/Debug/Hw2
duplicate symbol __ZN8Students10addStudentEv in:
/Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Intermediates.noindex/Hw2.build/Debug/Hw2.build/Objects-normal/x86_64/Classes.o
/Users/devintripp/Library/Developer/Xcode/DerivedData/Hw2-dpzrwrfmzkaytqajxohtoaipzmkh/Build/Intermediates.noindex/Hw2.build/Debug/Hw2.build/Objects-normal/x86_64/main.o
ld: 1 duplicate symbol for architecture x86_64
查看错误消息。实际阅读它。
您有一个重复的符号。这是哪个重复符号?
在两个文件中找到重复的符号。在哪两个文件中找到它?
您告诉链接器链接两个源文件,每个源文件都直接包含或通过包含相同的函数 Student::addStudent。
看起来你正在编译类.cpp两次:一次是当你的主要include
时,一次是独立编译的。 如果您查看链接错误,您可以看到两个目标文件(Classes.o
和main.o
)。
相关文章:
- MacOS 上的 Xcode 11 项目不在一个函数中使用 sin 和 cos:未定义的符号"___sincosf_stret"
- Xcode"体系结构x86_64的未定义符号"
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- XCODE OC / C++,超过2个文件,重复符号
- ld:Xcode 中架构x86_64的 1 个重复符号
- C++ Xcode 未定义的架构符号
- 找不到体系结构x86_64(带xcode的OpenGL)的符号
- 体系结构x86_64的未定义符号:Xcode 5 问题
- Xcode 无法找到x86_64架构的符号
- 如何删除LD:Xcode 4.2(C 代码)中的重复符号_
- C++和 Xcode 中出现重复符号错误
- XCode无法编译Poco项目,未定义符号
- 在Xcode中调试一个没有调试符号的dylib
- Xcode LD:8 个重复符号,用于架构x86_64
- Xcode C++ :: 体系结构x86_64的重复符号
- Xcode 错误:架构 x86_44 和 ld 的未定义符号:找不到架构x86_64的符号
- Xcode 代码感知不起作用(找不到符号)
- Xcode:为什么重命名为 .mm 失败,仅在静态库中"___gxx_personality_sj0"未定义的符号?
- OpenCV, XCode 中的链接错误, 架构的未定义符号 x86_64: "_cvHaarDetectObjects" , 引用自: _main in main.o
- c++Mac Xcode:体系结构x86_64:的未定义符号