C++ 编译器不正确地将文件包含在同一目录中
第一次使用堆栈溢出。 我试图练习面向对象的抽象和接口。我一直无法让程序编译,我的程序如下 main.cppC++ 编译器不正确地将文件包含在同一目录中,c++,gcc,compiler-errors,C++,Gcc,Compiler Errors,第一次使用堆栈溢出。 我试图练习面向对象的抽象和接口。我一直无法让程序编译,我的程序如下 main.cpp #包括“Spells.h” #包括 int main() { 魔法咒语; std::cout您没有将Spell.cpp传递到g++ 使用您提供的选项,g++将尝试编译其参数中列出的文件,并将生成的对象文件链接在一起以生成最终的可执行文件。但是,由于从未编译过Spell.cpp,链接器无法找到Spell::Spell或Spell:~Spell的定义de> 最简单的修复方法是向g++提供所有翻
#包括“Spells.h”
#包括
int main()
{
魔法咒语;
std::cout您没有将Spell.cpp
传递到g++
使用您提供的选项,g++
将尝试编译其参数中列出的文件,并将生成的对象文件链接在一起以生成最终的可执行文件。但是,由于从未编译过Spell.cpp
,链接器无法找到Spell::Spell
或Spell:~Spell的定义de>
最简单的修复方法是向g++
提供所有翻译单元,例如
g++ main.cpp Spell.cpp -o main
这些是链接器错误,您正在编译main.cpp,没有错误。您缺少的是在Spell.cpp中编译和链接。标题似乎与问题无关
g++ main.cpp -lcrypt -lcs50 -lm -o main
/tmp/ccnXk1TN.o: In function `main':
main.cpp:(.text+0x20): undefined reference to `spell::spell()'
main.cpp:(.text+0x3f): undefined reference to `spell::~spell()'
main.cpp:(.text+0x64): undefined reference to `spell::~spell()'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'main' failed
make: *** [main] Error 1
g++ main.cpp Spell.cpp -o main