ビルドエラー追加
eclipseバージョン修正
・バージョン
boost:1.55.0
eclipse:4.3.1
boost_1_54_0から標準で含まれているBoost.Logを使ってみます。
#include <boost/log/trivial.hpp> int main() { BOOST_LOG_TRIVIAL(trace) << "Hello Boost.Log"; return 0; }
eclipseだとマクロのトークン連結演算子がうまく処理できないようで、
下記、2つのビルドエラーが発生する場合、Code Analysisの設定を変更します。
Function 'BOOST_PP_SEQ_ENUM_BOOST_PP_SEQ_SIZE' could not be resolved
Invalid arguments '
Candidates are:
boost::log::v2s_mt_posix::record open_record()
boost::log::v2s_mt_posix::record open_record(const #10000 &)
Code Analyzerの設定はプロジェクトごとかワークスペース全体でできるので好きなほうを変更する。
プロジェクトはプロジェクトを右クリックして[Properties] → [C/C++ General] → [Code Analysis]
ワークスペースはメニューから[Window] → [Preferences] → [C/C++] → [Code Analysis]
[Syntax and Semantic Errors] 内の [Function Cannot be resolved] と [Invalid arguments]のチェックをオフもしくはSeverityをWarningかInfoに変更する。
boostを使っているとたまに出るエラー。
頭の片隅においておくと助かるときがあるはず。
次はリンクエラー。
undefined reference to `boost::log::v2s_mt_posix::attribute_name::get_id_from_string(char const*)'
これはBoost.Logを動的にリンクするようにオプションを設定していないため。
対処として全てのソースファイルにBOOST_LOG_DYN_LINK もしくは BOOST_ALL_DYN_LINKを定義します。
全ソースファイルに定義するのが面倒なときには boost/config/user.hpp に定義しましょう。
これはこのあたりに書いてあります。
http://www.boost.org/doc/libs/1_55_0/libs/log/doc/html/log/rationale/namespace_mangling.html
0 件のコメント:
コメントを投稿