xCode投掷随机链接错误?

时间:2012-11-25 20:16:16

标签: c++ xcode linker-errors

我使用xCode在C ++中开发我在大学的CS课程。到目前为止我对它没有任何问题。但是,我遇到了一个我无法在xCode中弄清楚的错误。

这是错误:

Undefined symbols for architecture x86_64:
  "shortestpath(double const* const*, int, int, double*, int*, std::__1::vector<std::__1::pair<int, int>, std::__1::allocator<std::__1::pair<int, int> > >)",     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)

我正在做一些贝尔曼福特算法的简单实现。我的程序设置如下:

main.cc - 获取图形的.txt文件并将其发送到我的readGraph函数。 readGraph.cc/.h - 获取图形文件并将其读入邻接矩阵并提取其他必要信息 bellmanFord.cc/.h - 在图上执行bellman ford算法。

我的主文件如下所示:

#include <fstream>
#include <iostream>
#include <cstdlib>
#include <utility>
#include <vector>
#include "bellmanford.h"
#include "readfile.h"

using namespace std;


int main(int argc, const char * argv[])
{

    //check the command line length
    if(argc < 2)
    {
        //print the error
        cout << "Not enough command line arguments!" << endl;
        //return to exit with error
        return 1;
    }



    //open the graph file
    ifstream fin;
    fin.open(argv[1]);


    //get the length
    int length;
    fin >> length;


    //make the references to send
    double** matrix;
    vector<pair<int, int>> pairVector;
    double* dist;
    int* prev;

    //make the matrix, and lists for bellmanford
    readfileTOMatrix(fin, matrix, length);
    readfileTOpairs(pairVector, matrix, length);
    make_Prev_and_Dist(prev, dist, length);



    shortestpath(matrix, length, 0, dist, prev, pairVector);


}

错误发生在调用shortestpath的底部(这是bellmanFord.cc/.h中唯一的函数)。如果我发表评论,它运行正常。我检查过并仔细检查过,但我确信一切都设置正确。

据我所知,我可以使用make文件来解决这个问题....但是有没有人在xCode中纠正这个问题?

以下是错误详情: error detail

1 个答案:

答案 0 :(得分:0)

我的.h和.cc之间存在很小的差异。忘了一个“&amp;”在实际声明中遗漏的原型中。一切正常!