私は c++ プログラミングとプログラミング全般に非常に慣れていません。最近、クラスのプログラムにヘッダー ファイルやその他のソース ファイル (実装) を追加しています。複数のファイルを1つのプログラムに含めるための基本を理解していることを確認するために、最も単純なプログラムを作成しようとしましたが、コンパイルされず、リンカーエラーが発生します。
すなわち:
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」を使用してターミナルでコンパイルすると、すべて正常に動作します。
私のコード:
main.cpp
#include "header.h"
int main()
{
FooBar object;
object.printSomething();
return 0;
}
header.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 が大好きですが、これには本当にイライラしています。
ありがとうございました!