【发布时间】:2017-07-11 22:18:57
【问题描述】:
我正在尝试在我的 main 方法中访问 Element 结构中的方法。我不断收到错误提示
“架构 x86_64 的未定义符号:
“Element::Element()”,引用自:
Element.o 中的_main
main.o 中的_main
ld:未找到架构 x86_64 的符号
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看 调用)"
元素标题
#ifndef Element_hpp
#define Element_hpp
struct Element {
public:
int getNumber(void);
void setNumber(int n);
int getSteps();
void setSteps();
Element();
private:
int number;
int stepN;
};
#endif /* Element_hpp */
元素类
#include "Element.hpp"
#include "main.cpp"
int Element::getNumber() {
return number;
}
void Element::setNumber(int n) {
number = n;
setSteps();
}
int Element::getSteps() {
return stepN;
}
int steps(int n) {
int i = 0;
int j = n;
while(j != 1) {
if(j % 2 == 1) {
j = (3 * j + 1) / 2;
i = i + 2;
}
else if(j % 2 == 0) {
j= j / 2;
i= i + 1;
}
}
return i;
}
void Element::setSteps() {
stepN = steps(number);
}
主类
#include <iostream>
#include <String>
#include <fstream>
#include "Element.hpp"
int main(int argc, const char * argv[]) {
std::ofstream data;
data.open("data.txt");
int end = 1000;
Element* e = new Element[end];
for(int i = 0; i < end; i++) {
e[i].setNumber(i);
e[i].setSteps();
}
heapSort(e, end);
printArray(e, end);
data.close();
return 0;
}
【问题讨论】:
-
这太明显了。您声明但未能定义类的构造函数。你到底有什么不明白的地方?
-
你如何编译和链接你的代码?您使用的是命令行还是 IDE?您是否使用了诸如 make 之类的任何构建?
标签: c++