我开始学习cpp,并且从一个简单的程序开始:

#include <stdio.h>
#include <vector>
#include "functions.h"
using namespace std;

int main(int argc,char * argv[]){
  double start=0;
  double end=0;
  vector<double> fbseq;

  getInput(argc,argv);

return 0;
}


在functions.h中,我有:

using namespace std;
void getInput(int,char **);


当我编译并运行时,我得到:

g++ fibonacci.cpp -o fibonacci
/tmp/ccZ1cCvi.o: In function `main':
fibonacci.cpp:(.text+0x3d): undefined reference to `getInput(int, char**)'


我不太明白这意味着什么,有人可以帮我,因为我看到这与我不了解指针有关?

谢谢

最佳答案

这是一个链接器错误,这意味着代码可以很好地编译,但是链接器无法找到所用内容的定义。在这种情况下,这意味着您没有在任何地方定义getInput。您需要使该函数具有主体。通常,您应该在相应的.cpp文件中执行此操作:

#include "functions.h"

void getInput(int argc, char** argv) {
  // Implement here
}


当您拥有该文件时,还需要确保也编译该文件。只需将其添加到g++命令。

关于c++ - 将argv与函数一起使用时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22070803/

10-11 16:29