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++鏈接相對繁鎖,用哪個庫就要指定哪個庫的樣子,到底哪些庫需要這個指定,待時間用長了再結論。