-1

これが重複した質問である場合は申し訳ありません。ubuntuにeclipse juno、cdtがあります。機能する Hello World autotools プロジェクト。ここで、別のファイルで関数を使用したいので、one.h と one.cpp を作成し、main_hello.cpp を変更しました。

main_hello.cpp:

#include <iostream>
#include "one.h"

using namespace std;

int main(void) {
        cout << "Hello World" << endl;
        onehello();
        return 0;
}

one.h:

#ifndef ONE_H_
#define ONE_H_
void onehello(void);
#endif /* ONE_H_ */

one.cpp:

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

void onehello(void) {
        cout << "Hello one" << endl;
}

ビルドすると、「`onehello() への未定義の参照」が発生します。関数を one.cpp ではなく one.h で定義すると機能します。私は何を間違っていますか?

ありがとうございました!

4

1 に答える 1

1

one.cpp を src/Makefile.am に追加します。

このファイルの次の行である必要があります。

some_name_SOURCES=main_hello.cpp

したがって、one.cpp を追加します。

some_name_SOURCES=main_hello.cpp one.cpp

于 2013-04-24T11:35:58.737 に答える