提问人:Chronus 提问时间:11/13/2018 更新时间:11/15/2018 访问量:1239
尝试输入向量时对序列的未定义引用
Undefined reference to sequence when trying to input a vector
问:
这似乎很简单,但不知何故,编译会发送我无法理解的错误消息,从而更正我的代码。
这是我所做操作的简化版本,只是为了让您看到错误:
Main.cpp
include "myfunction.h"
int main(){
std::vector<int> myVet = {1,4,3};
sequence(1,2,1,myVet);
}
myfunction.h
#include <vector>
/*funtion creates a sequence*/
void sequence(int start, int end,
int step, std::vector<int> skip);
我的函数.cpp
#include "myfunction.h"
void sequence(int start, int end,
int step, std::vector<int> skip){
auto x = 0;
};
这给了我一条错误消息,上面写着
In function 'main':
/home/machina/Documents/Grafos&Redes/Implementação/main.cpp:18: undefined reference to 'sequence(int, int, int, std::vector <int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status
你能解释一下为什么会出现吗?
这是我一直用于编译的以下命令
g++ -std=c++11 -g -Wall -Wextra -Werror main.cpp -o main.out
答:
0赞
Adham Zahran
11/15/2018
#1
您只是传递给 g++。main.cpp
G++ 需要了解定义函数的 myFunction.cpp,以便编译并将其链接到您的程序。
要使用的命令应为:
g++ -std=c++11 -g -Wall -Wextra -Werror main.cpp myfunction.cpp -o main.out
评论
myfunction.cpp
... -Werror main.cpp myfunction.cpp -o main.out