0

g++4.8 コンパイルを使用してブースト ライブラリを自分でコンパイルしましたが、成功しました。すべてが ~/bin/boost にあります。コンパイル後、すべてのファイルは /Users/$(USER)/bin/boost/stage/lib/ にあります

以下必要なメイクパーツ:

CC=g++-4.8
LD=g++-4.8

BOOST_LIB_PATH=/Users/$(USER)/bin/boost/stage/lib/
BOOST_HEADER_PATH=/Users/$(USER)/bin/boost/

LFLAGS=-L$(BOOST_LIB_PATH) -lboost_thread

release: $(OBJ)
        $(LD) $(OBJ) obj/main.o $(LFLAGS) -o $(RELEASE_NAME) 

コンパイル中はすべて問題ありませんが、リンク プロセスは失敗します。基本的に、すべてのエラーは同じように見えます。

ndefined symbols for architecture x86_64:
  "boost::system::system_category()", referenced from:
      __static_initialization_and_destruction_0(int, int)

私はすでに読んだ: Boost.Filesystemを使用しようとしていますが、リンクしていないようです? C++/Boost: 例で未定義のシンボル? および他の多くの人が、まだ解決策を見つけられませんでした。

どこに問題があるのか​​ わかりません。リンクの順序を変更しました。スレッドライブラリを直接リンクしようとしましたが、それでも同じ結果が得られます。mac os x 10.8.4 でhttps://github.com/dbedla/snake-cpp11のコンパイル中に問題が発生します(makefile を変更する必要があります)

問題を解決する方法についての提案に感謝します。

私の英語でごめんなさい:(

4

2 に答える 2

5

-lboost_systemまた、 where you had の後に追加する必要があります-lboost_thread

于 2013-08-23T21:58:03.207 に答える
0

問題はブーストシステムカテゴリにあるため、そのカテゴリ (libboost_system) にもリンクする必要があります。

CC=g++-4.8
LD=g++-4.8

BOOST_LIB_PATH=/Users/$(USER)/bin/boost/stage/lib/
BOOST_HEADER_PATH=/Users/$(USER)/bin/boost/

LFLAGS=-L$(BOOST_LIB_PATH) -lboost_thread -lboost_system

release: $(OBJ)
        $(LD) $(OBJ) obj/main.o $(LFLAGS) -o $(RELEASE_NAME) 
于 2013-08-23T22:06:20.627 に答える