linux平臺下使用boost庫


1. 下載boost編譯後,boost頭文件最好拷到/usr/include下,或者在/usr/include下有鏈接。

stage/lib/libboost_*中的庫文件最好拷到/usr/lib中。

這樣用g++運行時,可以不用指定-I$BOOST_INCLUDE和-L$BOOST_LIB.

2. 運行

g++ main.cpp SourceLine.cpp FileTravel.cpp -I$BOOST_INCLUDE -L$BOOST_LIB -lboost_filesystem

出現如下錯誤:

FileTravel.cpp: In member function ?.oid FileTravel::GetSubfiles(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)?.

FileTravel.cpp:27: error: invalid conversion from ?.ool (*)(const std::string&)?.to ?oid*?

FileTravel.cpp:27: error:   initializing argument 2 of ?.oost::filesystem3::path::path(const Source&, typename boost::enable_if<boost::filesystem3::path_traits::is_pathable<typename boost::decay<Source>::type>, void>::type*) [with Source = std::basic_string<char, std::char_traits<ch`ar>, std::allocator<char> >]?

上面出現"?"等亂碼看不出錯誤是什麼,修改xshell default language 成utf-8,

g++ main.cpp SourceLine.cpp FileTravel.cpp -lboost_filesystem -lboost_thread

運行正常。

3.總結:boost是個好庫,但g++鏈接相對繁鎖,用哪個庫就要指定哪個庫的樣子,到底哪些庫需要這個指定,待時間用長了再結論。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章