私はdata_time
ライブラリをC++ cmake
プロジェクトにリンクしようと一日を過ごしています。`boost :: gregorian :: greg_month :: as_short_string()const 'への未定義の参照を作成する
だから私はcmake 3.4
とboost 1.61.0
を使用しています。 私は現地時間がかかっている機能であるクラスがあります。
void TestClass::getTime() {
this->endDate = boost::posix_time::second_clock::local_time();
}
は、それから私は、文字列を返す関数でendDate
の値を返すようにしたい:
string testCalss::Info() {
return to_simple_string(this->beginningDate);
}
私はのタイプを変換する必要がありますがendDate
をstring
に変更すると、関数は文字列型なので、
プログラムがリンクされている間、私はエラーメッセージを取得しています:
In function boost::date_time::month_formatter<boost::gregorian::greg_month, boost::date_time::simple_format<char>, char>::format_month(boost::gregorian::greg_month const&, std::ostream&)':
/usr/include/boost/date_time/date_formatting.hpp:44: undefined reference to `boost::gregorian::greg_month::as_short_string() const'
/usr/include/boost/date_time/date_formatting.hpp:49: undefined reference to `boost::gregorian::greg_month::as_long_string() const'
私はdata_timeはヘッダのみ専用のライブラリではなく、私が構築し、私のプロジェクトに追加する必要があることを読みました。
私はcmake
プロジェクトでg++
を使用しているため、このコマンドをgcc myapp.cpp -omyapp -lboost_date_time
としても動作しません。g ++には何も見つかりませんでした。ライブラリをリンクする方法公式ブーストドキュメントから
c++ -I path/to/boost_1_61_0 example.cpp -o example \
~/boost/stage/lib/libboost_regex-gcc34-mt-d-1_36.a
その例:
は私もこれを試してみました。cmake
プロジェクトでは、
cpp
ファイルがほとんどありません。ファイルを使用してこのコマンドを実行する必要があります。
このエラーを解決する簡単な方法はありますか?