我对 c++ 编程和一般编程非常陌生。最近我们在课堂上的程序中添加了头文件和其他源文件(实现)。我尝试编写最简单的程序,以确保我了解将多个文件包含到一个程序中的基础知识,但它们无法编译,从而导致出现链接器错误。
即:
Undefined symbols for architecture x86_64:
"FooBar::printSomething()", referenced from:
_main in main-d52d70.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
当我使用“g++ main.cpp implementation.cpp”在终端中编译时,一切正常。
我的代码:
主文件
#include "header.h"
int main()
{
FooBar object;
object.printSomething();
return 0;
}
头文件.h
#ifndef _Header_h_
#define _Header_h_
#include <iostream>
using namespace std;
class FooBar{
public:
void printSomething();
private:
string helloWorld;
};
#endif
实现.cpp
#include "header.h"
void FooBar::printSomething(){
helloWorld = "Hello World!\n";
cout << helloWorld;
}
我喜欢 CodeRunner,但这真的让我很沮丧。
谢谢!