我想嘗試一下我正在開發的一個項目的Boost :: Serialization庫。我也習慣在Linux中習慣編程。我在默認位置設置了提升。我試着用他們提供的命令行參數編譯他們提供的測試文件here,它工作正常。在這個例子中他們使用.a文件。如何知道在鏈接到Boost時何時使用.a或.so?
然後我去了序列化頁面,並嘗試運行其中一個serialization demos。我運行基本相同的命令,除了換出文件名並鏈接到libboost_serialization.a而不是libboost_regex.a,但我得到了一堆錯誤。在玩完不同的選項並重新檢查目錄後,我終於通過用.so文件替換.a文件來實現它。
僅供參考,最終什麼工作對我來說是這樣的:
g++ /usr/local/lib/libboost_serialization.so sertest.cpp -o sertest
怎麼來聯繫我對某文件一個例子,在其他的我不得不反對。所以鏈接?
不應該使用'-l'選項,也許使用'-L'作爲庫搜索路徑,而不是直接在命令行中指定庫? – 2009-10-13 18:49:04
在給出的例子中,他們使用 $ C++ -I path/to/boost_1_40_0 example.cpp -o example \ 〜/ boost/stage/lib/libboost_regex-gcc34 -mt -d-1_36.a 所以我做了同樣的。 – Alex 2009-10-13 18:55:10