2012-04-05 87 views
0

C++的解決方案.. 我試圖創建一個項目來調用另一個項目,所以它應該是讓我從另一個項目叫頭文件,但一旦我打電話,會出現錯誤LNK 2019C++ LNK 2019從不同的項目,但在相同的解決方案

我不能明白爲什麼它是如此。

最初我以爲這是編譯器的問題。但是我慢慢意識到,該項目不能相互關聯。任何解決方案都可以幫助我克服這個問題。

讚賞的幫助很多。但它的迫切..

例子:

創建日期凸出(包含與date.h datetime.h鏈接和time.h中正常工作) 創造了動力凸出 - 僅存儲浮點型變量。 創建一個輸入項目,以存儲來自上述兩個項目的日期和電源.. 但一旦我聲明輸入輸入;它具有接頭問題如下

源代碼.. 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; 
} 

回答

0

以下爲說明該問題(http://msdn.microsoft.com/en-us/library/799kze2z%28v=vs.100%29 .aspx) 「函數'function'中引用的」無法解析的外部符號'符號'「

而這正是它的原因。您需要鏈接實際定義符號/對象的庫或實現的位置。通常頭文件只包含聲明,但編譯後的鏈接器也需要實現,因爲您正在引用主項目中的項目(您的主項目正在使用這些對象)。所以鏈接器無法鏈接你的代碼。

在VS2010去配置屬性 - >連接器 - >常規 - >附加庫目錄,並指定庫路徑。然後去配置屬性 - >連接器 - >輸入 - >附加依賴,並指定LIB(Power.lib?)

希望幫助的名稱。讓我知道如果這可以解決您的問題。

+0

您提到的問題是正確的。但解決方案似乎不正確。 – JoyceLim 2012-04-06 07:10:25

+0

我找不到庫文件。 – JoyceLim 2012-04-06 07:11:27

+0

謝謝。在哪裏可以找到作爲源代碼的Power.h,並且如果您尚未修改Power解決方案的標準編譯器參數,則應將其放在您的「調試」或「發佈」文件夾中,無論您做了哪些構建。你需要引用該文件夾。或者,如果您的visual studio中有power.h,您可以右鍵單擊名稱所在窗口的頂部,然後選擇打開文件位置或複製完整路徑,然後您就可以擁有它了,您只需向上一級然後轉到Debug文件夾,然後將其複製到您的設置中。讓我知道你是怎麼做的。 – ervinbosenbacher 2012-04-06 14:01:34

相關問題