我想在VS2010上構建和運行Boost.Log庫。在VS2010上升壓日誌鏈接錯誤
我從他們SVN中的trunk中獲取了最新的文件。 我將所有的頭文件和源文件拖放到一個win32.exe項目中,設置所有boost的(1.47)include \ lib目錄。 使用.mc文件播放了一段時間後,我設法從中生成頭文件和.rc文件。
還確保運行時庫設置爲多線程調試DLL(/ MDd)。
我主要CPP文件是這樣的:
#include "stdafx.h"
#include <boost/log/trivial.hpp>
int _tmain(int argc, _TCHAR* argv[]){
BOOST_LOG_TRIVIAL(error) << "An error severity message"; }
一切編譯,但後來我得到這個鏈接錯誤:
錯誤LNK1104:無法打開文件「libboost_log_setup-VC100-MT-GD-1_47.lib '
問題產生: 我正在構建一個.exe項目,爲什麼要查找這個.lib文件?我有來源和所有。 鏈接器如何知道名稱'libboost_log_setup-vc100-mt-gd-1_47'?我在鏈接選項中找不到任何剩餘部分,也沒有在源代碼中找到它。
我能在這裏做什麼?
這將是最好的,如果有人能指導我已經建立和工作的Boost.Log的VS2010 .lib。
P.S. 在此之前,我試圖從boost.log源文件編譯一個.lib文件,並讓另一個exe項目使用它。 .lib構建得很好。 但在客戶端項目中,我收到了此類錯誤:
錯誤LNK2019:無法解析的外部符號「void __cdecl boost :: log_mt_nt5 :: trivial :: aux :: init(void)」(?init @ aux @ trivial @ log_mt_nt5 @ boost @@ YAXXZ)在函數「public:static class boost :: log_mt_nt5 :: sources :: severity_logger_mt__cdecl boost :: log_mt_nt5 :: trivial :: logger :: construct_logger(void)」(?construct_logger @ logger @ trivial @ log_mt_nt5 @ boost @@ SA?AV?$ severity_logger_mt @ W4severity_level @ trivial @ log_mt_nt5 @ boost @@@ sources @ 34 @ XZ)
除此之外,我甚至通過2.0使用了許多項目的boost日誌,然後最終擱置了它(不幸的是)。一旦你超越了樣本所涵蓋的任務,看起來過於設計,文檔不足,並且一般都很笨拙。此外,Google日誌記錄庫使用的條件/嚴重性技巧實際上已被優化得很好; boost.log在確定是否發送到輸出之前對整行進行格式化。 – adzm