未定义的参考函数问题

时间:2013-08-18 11:58:56

标签: c++

我在一个文本文件中读取各种int,string和double字段,这些字段是制表符分隔的。我正在尝试生成'/ t'字符的位置数组。我最终试图让这个工作起来。我一直在

undefined reference to getTAB(std::string, int*)
主要的

错误。

我做错了什么?

我的文件如下

的main.cpp

#include <iostream>
#include <fstream>
#include <string>
#include "getTAB.h"
using namespace std;
int main ()
{
    int tab = 7; int tabPosition[tab];
    string lineOfInput;
    ifstream inFile("DATA/inputData.txt");
    while(getline(inFile,lineOfInput))
    {
        cout << lineOfInput << endl;
        getTAB(lineOfInput, &tabPosition[0]);   
    }   
    inFile.close();   
return 0; 
}

getTAB.h

#ifndef GETTAB_H_INCLUDED
#define GETTAB_H_INCLUDED
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void getTAB(string line, int *array);
#endif // GETTAB_H_INCLUDED

和getTAB.cpp

#include "getTAB.h"
void getTAB(string line, int *array)
{   
    int tab = 0;   
    for(int i=0; i < line.length(); i++)
    {
        if(line.at(i) == '\t')
        {
            array[tab] = i;
            cout << tab <<"----"<< i << endl;
            j++;
        }
    }   
    return; 
}

inputData.txt

1   OTTO BROTHERS   FHS 517267  1417.174    ZA 11 TRPF 18162    BC  H

1 个答案:

答案 0 :(得分:2)

我不知道你用什么命令来编译你的程序,但你应该使用这样的东西(在g ++的情况下)

  

g ++ main.cpp getTAB.cpp

而不是

  

g ++ main.cpp

您需要明确说明这两个文件,以便将它们链接在一起。

我不知道你使用的是什么编译器,尽管语法基本保持不变。