C++ 苹果Mach-O链接器错误?请帮忙
当我尝试编译代码时,出现以下错误:C++ 苹果Mach-O链接器错误?请帮忙,c++,C++,当我尝试编译代码时,出现以下错误: Undefined symbols for architecture x86_64: "findCentralAtom(int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_str
Undefined symbols for architecture x86_64:
"findCentralAtom(int, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >)", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我不确定我从C++开始以来该做什么。
vector<int> findCentralAtom(int dist, const vector<string>& list) {
int numAtoms = int(list.size());
vector<int> centralAtom = {0,0};
for(int i = 0; i < numAtoms; i++) {
int count = 0;
for(int k = 0; k < numAtoms; k++) {
double temp = 0;
temp = returnDistance(i, k, list);
if(temp != 0 && temp < dist) {
count++;
}
}
if(count > centralAtom[1]) {
vector<string> tempVec = splitter(list[i]);
centralAtom[0] = atoi(tempVec[4].c_str());
centralAtom[1] = count;
}
}
return centralAtom;
}
/*
int main() {
....
//caAtoms is a string vector
vector<int> central = findCentralAtom(10, caAtoms);
}
*/
您已将central声明为向量,但findCentralAtom的参数是两种类型需要匹配的常量向量
编辑:也许我误解了,但是代码中的注释说://caAtoms是一个字符串向量,您称之为findCentralAtom,它有两个参数,一个是int 10,另一个是向量caAtoms。findCentralAtom声明为vector findCentralAtomint dist,const vector&list第一个参数dist是int,它对应于调用参数10,这很好。第二个参数是list,声明为const vector&list。相应的参数是caAtoms。您正在将字符串向量传递给需要int向量的函数。这就是为什么会出现链接器错误。它们需要匹配的原因吗?向量中心包含整数,与字符串向量参数分开。这和从字符串参数返回整数值不一样吗?请参阅答案的加法