本文一共包含了17個(gè)步驟,按照下面的步驟就可以完成vs2010中編譯log4cxx的工作了。
1. 下載 log4cxx 以及 apr 和 apr-util源碼:
a)http://www.apache.org/dyn/closer.cgi/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip
b)http://archive.apache.org/dist/apr/apr-1.2.11-win32-src.zip
c)http://archive.apache.org/dist/apr/apr-util-1.2.10-win32-src.zip
2. 將 3個(gè)壓縮包解壓到同一個(gè)目錄.如下圖:
3. 將 apr-1.2.11重命名為 apr, 將 apr-util-1.2.10 重命名為apr-util.如下圖:
4、打開(kāi)cmd窗口,如下圖所示:
5、在4中輸入:cdD:/log4cxx_compile/apache-log4cxx-0.10.0 回車(chē)
然后輸入:d: 回車(chē)后 切換至 apache-log4cxx-0.10.0目錄
6、在5中輸入:configure.bat回車(chē)
7.在6的基礎(chǔ)下dos窗口下繼續(xù)輸入:configure-aprutil.bat回車(chē)
手動(dòng)修改 apr-util/include/apu.hw里的內(nèi)容
#define APU_HAVE_APR_ICONV1改為
#define APU_HAVE_APR_ICONV0
10. 使用VS2010打開(kāi) apache-log4cxx-0.10.0/projects 下的 log4cxx.dsw
打開(kāi)工程會(huì)提示轉(zhuǎn)換:
11、轉(zhuǎn)換好后工程如下圖:
12、將 log4cxx設(shè)置為啟動(dòng)項(xiàng).
設(shè)置前:
設(shè)置后:
13.開(kāi)始編譯.log4cxx
出現(xiàn)
4>D:/log4cxx_compile/apache-log4cxx-0.10.0/src/main/include/log4cxx/spi/loggingevent.h(155):error C2252: 只能在命名空間范圍內(nèi)顯式實(shí)例化模板
a) 雙擊 "輸出"窗口中的錯(cuò)誤行, 此時(shí)會(huì)在 "代碼窗口" 中出現(xiàn)錯(cuò)誤的位置.如下圖:
b) 選擇 LOG4CXX_LIST_DEF, 按鍵盤(pán) F12,此時(shí)會(huì)跳轉(zhuǎn)到該宏的定義,如下圖:
c) 將
#define LOG4CXX_LIST_DEF(N, T) /
template class LOG4CXX_EXPORTstd::allocator<T>; /
template class LOG4CXX_EXPORTstd::vector<T>; /
typedef std::vector<T>N
替換為:
#define LOG4CXX_LIST_DEF(N, T) /
typedef std::vector<T>N
出現(xiàn)
2>network_io/unix/multicast.c(137): errorC2079: “mip”使用未定義的struct“group_source_req”錯(cuò)誤雙擊第一行出錯(cuò)輸出, 將 136 和 148 行的 #if MCAST_JOIN_SOURCE_GROUP 注釋,替換為 #if defined (group_source_req)
出現(xiàn)
'4>../src/main/cpp/stringhelper.cpp(64):error C2039: “insert_iterator”: 不是“std”的成員'等錯(cuò)誤.
在該 .cpp中(stringhelper.cpp) 加入頭文件#include<iterator>
出現(xiàn) '無(wú)法解析的外部符號(hào) xxx'等錯(cuò)誤.
將 apr, aprutil, xml添加至 log4cxx 的引用中.(按照下面4副圖的順序操作)
17.選擇重新生成解決方案.
編譯成功后:
到此log4cxx編譯就完成了。
本文就到這里了,希望小伙伴們能夠喜歡。
新聞熱點(diǎn)
疑難解答
圖片精選