2014-04-17 35 views
1

我2010開始這個簡單的Quantlib Date類在VC++速成:QuantLib Date類在Visual C++ 2010

#include <iostream> 
#include <sstream> 

#include "ql/time/date.hpp" 

int main(int, char* []) 
{ 
    QuantLib::Date d(1, QuantLib::January, 2010); 
    std::cout<<da<<std::endl; 
} 

當我編譯它,這是錯誤之一:

1>ql_inout.obj : error LNK2019: unresolved external symbol "public: __thiscall QuantLib::Date::Date(int,enum QuantLib::Month,int)" ([email protected]@@[email protected]@[email protected]@Z) referenced in function _main 

它必須是我在2010年項目中沒有正確設置的內容。我已成功地在調試模式下編譯庫。

+0

出於某種原因,需要這樣做:#include 。不知道爲什麼ql/time/date.hpp不起作用。 – user3078106

回答

1

並非所有頭文件都包含告知連接器添加QuantLib的編譯指示。如果你不希望包括完整標題—這是不可取的,因爲它們會增加很多你的編譯時間—您可以添加

#include <ql/auto_link.hpp> 

到包括頭。

(你也可以明確地添加庫連接器的選項,但是這是一個很大的工作,因爲你必須指定根據配置不同的庫名。auto_link.hpp這是否適合你。)

+0

使用auto_link.hpp有什麼副作用嗎?我的意思是我的原始鏈接問題得到解決。但後來我無法編譯任何東西,因爲:1> C:\ Program Files \ QuantLib-1.4 \ ql/experimental/callablebonds/discretizedcallablefixedratebond.hpp(34):錯誤C2653:'CallableBond':不是類或名稱空間名稱。我甚至沒有使用CallableBond類。這是關於Windows 8的VC++ Express 2010,如果這很重要的話。 – user3078106

+0

這似乎是一個無關的問題。你到底在做什麼? –

+0

我覺得他們根本不相關。但不知何故,當我嘗試#include auto_link.hpp後,一切都崩潰了。無法得到處理錯誤的最簡單的例子。我不得不重新安裝QuantLib 1.4。現在看來編譯好了。 – user3078106