1. ホーム
  2. c++

[解決済み] C++のクラスを使用したアーキテクチャx86_64の未定義シンボル

2022-02-01 01:11:02

質問

このトピックに関する他の質問も読みましたが、私の問題を解決する方法がまだわかっていません。

よろしくお願いします。

私のエラーは

アーキテクチャ x86_64 で未定義のシンボルです。 "Record::Record(std::__1::vector, std::__1::allocator >, std::__1::allocator > > >, double*)" から参照されました。 akh70P3ClassTester-946637.o の _main から参照されています。 ld: x86_64 アーキテクチャ用のシンボルが見つかりません。

レコード.h

#include <string>
#include <vector>

using namespace std;

class Record
{
public:
    Record();
    Record(vector<string> , double []);

private:
    //some variables
};

レコード.cpp

#include "Record.h"
#include <string>
#include <vector>

using namespace std;

Record::Record() {}

Record::Record(vector<string> inputs, double num_inputs[] )
{
    //variables happens
}

メイン.cpp

#include "Record.h"
#include <vector>

using namespace std;

int main() {

    vector<string> inputs;

    double num_inputs[] = {};

    Record temp(inputs, num_inputs);

    return 0;
}

解決方法は?

コンパイル時にReport.cppをインクルードしていない可能性があります。 g++ main.cpp -o main

その代わり、レポートファイルをインクルードしてプログラムをコンパイルしてください。 g++ main.cpp report.cpp -o main