5

MacでmuParserを構築しようとしていますが、XCodeを4.4にアップグレードしてgccを更新するまで機能しました。今、私は理解できないエラーを生成する次のコード行を取得します:

mu::console() << _T(" \"") << val.GetAsString() << _T("\" ");

../muparser/src/muParserBase.cpp:1823:   instantiated from here
../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' but no definition available
../muparser/src/muParserBase.cpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]':
../muparser/src/muParserBase.cpp:1823:   instantiated from here
../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' but no definition available
../muparser/src/muParserBase.cpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]':
../muparser/src/muParserBase.cpp:1823:   instantiated from here
../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' but no definition available
../muparser/src/muParserBase.cpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]':
../muparser/src/muParserBase.cpp:1823:   instantiated from here
../muparser/src/muParserBase.cpp:1823: error: explicit instantiation of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' but no definition available

mu::console()は次のように定義されます。

inline std::ostream& console()
{
  return std::cout;
}

_T#define _T(x) x

GetAsString

  const TString& GetAsString() const
  {
    return m_strTok;
  }

TStringですstd::string

問題の原因は GetAsString の呼び出しです。それを修正する方法はありますか?

4

3 に答える 3

9

次の2行を.proファイルに追加すると、エラーがなくなります。

QMAKE_CFLAGS_X86_64 += -mmacosx-version-min=10.7
QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64
于 2012-08-26T20:10:06.027 に答える
0

XCode 4.4.xにアップグレードすると、コマンドラインツールが削除されました。XCodeで、[XCode]> [Preferences]に移動し、[Downloads]タブを選択して、[Command Line Tools]を再ダウンロードすると、動作が再開されました。多分これはあなたの問題も解決しますか?

于 2012-08-28T22:58:52.007 に答える
0

間違った標準ライブラリをリンクしているか、間違った C++ インクルードをインクルードしているようです。インクルード パスの c++ ヘッダーが、リンクしている標準ライブラリと一致していることを確認する必要があります。

ビルド ファイルを投稿していただければ、不一致があるかどうかを確認できます。

于 2012-07-31T21:13:19.880 に答える