我已经创建了一个头文件reachability.cc
和一个源map_nodes()
,我在其中声明了一个函数g++ -g lab1.o parser.o gate.o -o run
lab1.o: In function `main':
/home/ubuntu/workspace/ECE597/Lab1/lab1.cc:24: undefined reference to `map_nodes(std::vector<gate*, std::allocator<gate*> >)'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
。但是,由于错误,我无法编译:
map_nodes()
我仔细检查了传递给#include "reachability.h"
的数据结构的声明,并且它们位于正确的位置,这不是问题所在。我检查了主要的{{1}}并完成了。我还检查了参数类型,它们匹配。
我无法弄清楚为什么功能不可见。
这是我工作区的图片:
答案 0 :(得分:1)
假设reachability.cc被编译为reachability.o,您还需要链接它:
g++ -g lab1.o parser.o gate.o reachability.o -o run
答案 1 :(得分:0)
您没有链接reachability.cc
,其中定义了该功能。链接它来解决这个问题。
示例:
$ g++ -c reachability.cc
$ g++ -g lab1.o parser.o gate.o reachability.o -o run
($
是一个提示,你不应该输入它)