C ++:在Mac OS X,Qt 5.0上运行代码(在Linux中创建)

时间:2013-11-13 05:48:00

标签: c++ linux macos qt

当我运行在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"

可能是什么原因?

1 个答案:

答案 0 :(得分:2)

看来这是一个特定于MacOS的怪癖,通过添加编译器标志-mmacosx-version-min=10.7来解决。

具体而言(如下面的第一个链接所示),将这两行添加到.pro文件中:

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

支持链接: