您好,登錄后才能下訂單哦!
1)字符編碼
Thrift采用多字節的編碼方式,在使用log4cplus進行日志管理的時候,同樣需要編譯一個多字節的字符編碼的版本,否則就會出現log4cplus中無法解析的函數符號
2)Boost鏈接動態庫
libthrift
要求boost庫的智能指針,線程庫以及librt
注意:bool interruptible_wait(detail::win32::handle handle_to_wait_for,detail::timeout target_time)懷疑是boost版本之間的問題,主要是原本采用了1.58.0版本,后來使用了1.64.0版本的代碼,初步認為是兩者之間的線程代碼出現了分歧,導致無法找到函數的定義,實際上并沒有出現這種情況目前采用的boost庫是動態編譯出來的,因此必須指定正確的運行時庫,否則就會編譯出錯,調用boost的動態庫,需要注釋掉上面的兩行代碼,但是在目前來看依舊出現依賴libboost_thread-vc140-mt-sgd-1_64.lib不過從這里其實已經可以看出,調用的確實是靜態庫,其中有s,gd代表的意思是調試,mt代表多線程,
因此鏈接到boost靜態庫,說明運行時庫指定的不正確,應該指定MDT
詳細的資料參考如下;
http://www.cnblogs.com/bluedoctor/p/6236905.html
http://blog.csdn.net/xucuiping_/article/details/5979532
In the project properties you must also set HAVE_CONFIG_H
as force include the config header: "windows/confg.h"
By default lib/cpp/windows/force_inc.h defines:
#define BOOST_ALL_NO_LIB 1
#define BOOST_THREAD_NO_LIB 1
This has for effect to have the host application linking against Thrift to have to link with boost thread as a static library. If you wanted instead to link with boost thread
as a shared library,you'll need to uncomment those two lines, and recompile.
3)libthriftnb
依賴libevent,因此需要鏈接libevent
從目前的情況下看,只能夠編譯出靜態庫版本的thrift,預示著整一個工程只能夠鏈接靜態庫
Depending upon whether you are linkingdynamically or statically and how
your build environment it set up,
you may need to include additional
libraries when linking against thrift,
such as librt and/or libpthread. If
you are using libthriftnb you will alsoneed libevent.
http://blog.csdn.net/zengraoli/article/details/51320593
究竟在什么地方會使用到openssl
在編譯對應的lib文件時,并不需要引入openssl,僅當調用使用thrift的時候,加入了頭文件TServerTransport.h才需要到openssl
參考
http://blog.csdn.net/kuenking111/article/details/47701847
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。