2012-07-31 4 views
5

MacでmuParserをビルドしようとしていますが、gccをアップデートしたXCodeを4.4にアップグレードするまで、muParserをビルドしようとしています:エラー:明示的な 'std :: basic_ostreamのインスタンス化が利用可能ですが、定義がありません。

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

_T#define _T(x) x

GetAsString

const TString& GetAsString() const 
    { 
    return m_strTok; 
    } 
次のとおりです。

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()はのように定義している:今、私は理解していないエラーを生成するコードの次の行を取得します

TStringstd::string

です。問題の原因となるのは、GetAsStringの呼び出しです。どのようにそれを修正するための任意のアイデア?

+0

Qt Creatorが生成するMakefileは次のとおりです。http://pastebin.com/raw.php?i=NpXKqpLD –

答えて

0

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

ビルドファイルを投稿すると、不一致があるかどうか確認できます。

9

あなた.PROファイルに以下の2行を追加し、エラーが消えます:私はXCodeのの4.4.xからアップグレードする場合に

QMAKE_CFLAGS_X86_64 += -mmacosx-version-min=10.7 
QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 
+1

バイナリをMac OS X 10.4と互換性を持たせたいのですが? –

+0

それは私のために完全に動作します。ありがとう! – nkint

0

、コマンドラインツールを除去しました。 XCodeでは、XCode>環境設定に進み、ダウンロードタブを選択し、「コマンドラインツール」を再ダウンロードすると、再び動作するようになりました。多分あなたの問題を解決するでしょうか?

関連する問題