私のmain.cppファイルにTestClass.cppファイルを明示的にインクルードせずにこの単純なコードをコンパイルすることはできません。私は間違って何をしていますか?前もって感謝します!C++定義されていないリファレンス(インクルードあり)
ここコードである:
TestClass.h
#ifndef TESTCLASS_H_
#define TESTCLASS_H_
class TestClass
{
public:
static int foo();
};
#endif
TestClass.cpp
#include "TestClass.h"
int TestClass::foo() { return 42; }
main.cppにここ
#include <iostream>
#include "TestClass.h"
using namespace std;
int main()
{
cout << TestClass::foo() << endl;
return 0;
}
はエラーである。
g++ main.cpp -o main.app
/tmp/ccCjOhpy.o: In function `main':
main.cpp:(.text+0x18e): undefined reference to `TestClass::foo()'
collect2: ld returned 1 exit status
どのように奇妙な!私は前にこの問題に遭遇したことはありません。私はC++の初心者です。いつもIDEでこれをやっていたと思います。不思議ではない!ありがとう! –
@Scott - これはコマンドラインで時間を費やす理由です)。それはIDEがあなたから隠していることを明確にします... –
私はファイルの名前を変更することに同意しなければなりません。つまり、ファイルの内容は、内容(関数「main」およびクラス「TestCase」)の場合と同様に、その名前に基づいて名前が付けられます。 – camh