5

Qt Creator の Mac OS X で Clang++ を使用してブーストを使用してプログラムをコンパイルしようとしています。すべてうまくいきます。boost とすべてのプログラム モジュールをコンパイルしましたが、リンケージ ステージで clang はシンボルを見つけることができません。

Undefined symbols for architecture x86_64:
  "_BIO_ctrl", referenced from:
      boost::asio::ssl::detail::engine::map_error_code(boost::system::error_code&) const in session.o
  .....
  "boost::log::v2s_mt_posix::core::get()", referenced from:
      INIT_LOG() in log.o
  .....

qmake構成:

CONFIG       -= qt

CONFIG       += console debug

TARGET = server

QMAKE_CXXFLAGS -= -mmacosx-version-min=10.6
QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7
QMAKE_LFLAGS -= -mmacosx-version-min=10.6
QMAKE_LFLAGS += -stdlib=libc++ -mmacosx-version-min=10.7

リンクコマンドは次のとおりです。

clang++ -headerpad_max_install_names -stdlib=libc++ -mmacosx-version-min=10.7 -o server main.o session.o log.o -L/Users/apple/Lib/boost_1_53_0/usr/lib -L/opt/local/lib - L/usr/lib -lssl -lboost_system -lboost_filesystem -lboost_date_time -lboost_thread -lboost_log_setup -lboost_log -lboost_chrono -lboost_program_options

*.dylib の名前を変更すると、-lboost_* が見つからないと表示されるため、実際にはライブラリ ファイルが表示されます。

I can findでnm、そのシンボルが存在します:

0000000000018ad0 T __ZN5boost3log11v2_mt_posix4core3getEv
4

0 に答える 0