0

別のプロジェクトを呼び出すプロジェクトを作成しようとしているため、他のプロジェクトからヘッダー ファイルを呼び出すことができるはずですが、呼び出すと lnk エラー 2019 が発生します。

なぜそうなのか理解できませんでした。

最初はコンパイラの問題だと思っていました。しかし、ゆっくりと、プロジェクトを相互に関連付けることができないことに気付きました。問題を克服するのに役立つ解決策があれば教えてください。

例 :

日付proj(datetime.hとdate.hおよびtime.hのリンクを含む)を作成しました。正常に機能します)power projを作成しました-float変数のみを保存します。上記の2つのプロジェクトから日付と電力を保存する入力プロジェクトを作成しました..しかし、一度入力入力を宣言します。リンカーに問題があります

以下のソースコード.. Input.h

#ifndef INPUT_H
#define INPUT_H
//#include "../Date/DateTime.h"
#include "../Power/Power.h"

class Input{
public:
    Input();
    //{
        /*DateTime datetime;
        SetDateTime(datetime);*/
    //}

    friend ostream& operator << (ostream &output, const Input &value);
    friend istream & operator>>( istream &input, Input &value );
    void SetPower(Power power){
        mpower = power;
    }
    Power GetPower(){
        return mpower;
    }
    //get and set method of variable DateTime
    /*void SetDateTime(DateTime datetime);
    DateTime GetDateTime();*/
private:
    string test;
    Power mpower;
    //DateTime m_datetime;
};

#endif

input.cpp ファイル

ostream& operator << (ostream &output, const Input &value){
    output<<"test";
    //<<value.test;
    //output<<value.m_datetime<<endl;
    return output;
}
istream & operator>>( istream &input, Input &value ){
    //input>>value.m_datetime;
    return input;
}
4

1 に答える 1

0

問題の説明は次のとおりです (http://msdn.microsoft.com/en-us/library/799kze2z%28v=vs.100%29.aspx) 「関数 '関数' で参照されている未解決の外部シンボル 'シンボル'」

そして、それはまさにそれです。実際にシンボル/オブジェクトを定義しているライブラリ、または実装がどこにあるかをリンクする必要があります。通常、ヘッダー ファイルには宣言のみが含まれますが、リンカーは、コンパイル後に、メイン プロジェクトからそれらを参照しているため、実装も必要です (メイン プロジェクトはこれらのオブジェクトを使用しています)。そのため、リンカーはコードをリンクできません。

VS2010 では、[構成プロパティ] -> [リンカー] -> [全般] -> [追加のライブラリ ディレクトリ] に移動し、ライブラリ パスを指定します。次に、[構成プロパティ] -> [リンカー] -> [入力] -> [追加の依存関係] に移動し、lib の名前を指定します (Power.lib ?)

それが役立つことを願っています。問題が解決するかどうかお知らせください。

于 2012-04-05T19:20:00.200 に答える