2

编译包含 main.cpp、pattern.cpp 和 pattern.h 的 C++ 程序时(包含两个函数声明但没有类的头文件;这些函数在 pattern.cpp 中定义,而 main.cpp 包含 #include "pattern.h"在顶部)通过键入:

clang++ main.cpp

错误信息是:

/tmp/cc-nrPup0.o: In function `main':
main.cpp:(.text+0x69): undefined reference to `pattern(int, int)'
collect2: ld returned 1 exit status
clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)

我该如何解决?我尝试输入-v,但 clang 输出已终止,这是一个无效命令

4

1 回答 1

2

看起来你只编译main.cpp但没有pattern.cpp。当需要将可执行文件链接在一起时,pattern.cpp将找不到定义的函数。未定义的引用表明您main.cpp正在pattern(int, int)某处使用。如果从不编译,您可以看到为什么这会成为一个问题pattern.cpp

尝试编译:

clang++ -Wall -pedantic main.cpp pattern.cpp -o main
于 2013-08-13T21:03:37.597 回答