Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 苹果Mach-O链接器错误?请帮忙_C++ - Fatal编程技术网

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向量的函数。这就是为什么会出现链接器错误。

它们需要匹配的原因吗?向量中心包含整数,与字符串向量参数分开。这和从字符串参数返回整数值不一样吗?请参阅答案的加法