2015-05-04 54 views
0

我正在嘗試將cpp-netlib集成到我的預先存在的boost軟件包中,並將其用於我的程序中。將cpp-netlib集成到預先存在的boost軟件包

我只是包括:

#include <boost/network/uri.hpp> 

,並試圖用這樣的:

boost::network::uri::uri u("http://google.com"); 

在嘗試這樣做,我得到一個鏈接錯誤:

爲未定義的符號架構x86_64:

"boost::network::uri::detail::parse(std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, boost::network::uri::detail::uri_parts<std::__1::__wrap_iter<char const*> >&)", referenced from: 
     boost::network::uri::uri::parse() in Watcher.o 

我迄今所做的就是下載CPP-NETLIB, 使用cmake它的建設,我相信這是成功的,因爲我可以看到以下3個庫:

libcppnetlib-client-connections.a 
libcppnetlib-server-parsers.a 
cppnetlib-uri.a 

所以我的問題是我應該把我已經生成了3個靜態庫,以確保正確的鏈接。 我已經可以看到裏面的目錄中的一些庫文件:

-Boost 
    -bin.v2 

這兒就是我要保持我的圖書館,以確保正確連接的地方。

+0

我想你需要告訴這些文件通過一些標誌進行接頭(例如/ MAPINFO:在Windows出口產品) – Rahul

+0

喜拉胡爾, 我在OSX 10.9 工作,我相信什麼是應該有一個地方這些庫在boost中直接構造自身,如果放置在正確的位置,它們應該自動鏈接(考慮到我正在使用的項目已經在使用需要構建的boost庫,並且我沒有做任何特殊的事情來使用需要的文件系統等庫)構建)。 所以我需要知道需要放置這些文件的boost根目錄中的位置。 – PRIME

+0

也許迪帕克說的是對的。你將不得不告訴鏈接器庫的位置。 – Rahul

回答

0

您應該指定CPP-NETLIB(-L)庫路徑和庫鏈接(-l):

-lcppnetlib-client-connections.a 
-lcppnetlib-server-parsers.a 
-lcppnetlib-uri.a 

沒有地方放升壓文件夾結構上方庫。編譯應用程序時必須傳遞參數。

相關問題