1

ヘッダーファイルを使って学びたかった。エラーが発生しました。ここに私のコードがあります:

printmyname.h:

void printMyName();

printmyname.cpp:

#include "printmyname.h"

void printMyName() {
    cout << "omer";
}

try.cpp (メイン ファイル):

#include <iostream>
#include "printmyname.h"
using namespace std;


int main() {
    printMyName();

    return 0;
}

エラーは次のとおりです。

undefined reference to `printMyName()`

何が問題なの?

4

3 に答える 3

4

この場合、未定義の参照はヘッダー ファイルとは関係ありません。これは、リンカが の実装を見つけられないことを意味しprintMyNameますprintmyname.cpp。を使用している場合はg++、次を試してください。

g++ try.cpp printmyname.cpp -o yourBinaryName

makefile を使用している場合は、try.cpp に正しく依存関係 (printmyname.cpp) を追加する必要があります。

編集:

@zmoが彼のコメントで示唆しているように:

2 回コンパイルすることもできます (Makefile の方が適しています)。

g++ -c printmyname.cpp 
g++ try.cpp printmyname.o -o yourBinaryName
于 2013-06-12T10:24:40.767 に答える
0

Windows を使用している場合は、printmyname.cpp もプロジェクトに追加する必要があります。ヘッダーにインクルード ガードを追加することを検討してください

#ifndef PRINTMYNAME_INCLUDED 
#define PRINTMYNAME_INCLUDED 

void printMyName();

#endif

#include <iostream>およびusing namespace std;を try.cpp から printmyname.cpp ファイルに移動する必要もあります。

于 2013-06-12T10:43:05.947 に答える
-6

printMyName.h 内の printMyName.cpp にコード/定義を追加する必要があります。

void printMyName();
{
    cout << "omer";
}
于 2013-06-12T10:26:29.617 に答える