0

Linux で作成されたプロジェクトを実行すると、「std::cout<<...」行でエラーが発生します。

void Assert(bool condition, std::string message)
  {
    if(!condition)
     {
        std::cout<<"message"<<message<<std::endl;
        int s = 4/0;
     }
}

エラーメッセージ:

/MainData.cpp:159: 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

次の行を含めます。

#include"iostream"
#include"vector"
#include "math.h"
#include"cstdlib"
#include "string"

その理由は何ですか?

4

1 に答える 1

2

これは MacOS 固有の癖であり、コンパイラ フラグを追加することで解決されたよう-mmacosx-version-min=10.7です。

具体的には (以下の最初のリンクが示すように)、次の 2 行を .pro ファイルに追加します。

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

サポートリンク:

于 2013-11-13T05:52:59.743 に答える