我最近将我的OSX升级为山狮,因为我无法使用Qt Creator编译我的项目。我收到如下错误:
/Users/user/codes/lib/io/xdmfWriter.cpp:63: 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
/Users/user/codes/lib/io/xdmfWriter.cpp:-1: 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>]':
/Users/user/codes/lib/io/xdmfWriter.cpp:63: instantiated from here
// xdmfWriter.cpp -- line 63:
gridName << xdmfName_ << "." << timeStep;
gridName
是std::ostringstream
对象,xdmfName_
是std::string
变量,声明为xdmfWriter
类的私有成员,并在类构造函数中初始化。我以前没有这个问题......有什么想法吗?
答案 0 :(得分:6)
可以通过添加c_str()
来修复此问题,如下所示:
gridName << xdmfName_.c_str() << "." << timeStep;
但是,这不是一个永久的解决方案。
更新:我在https://web.archive.org/web/20140809210004/http://qt-project.org/forums/viewthread/19106/P15
中找到了解决方案您需要将-mmacosx-version-min=10.5
中的$QTDIR/mkspecs/common/g++-macx.conf
更改为-mmacosx-version-min=10.7
。
这是因为Mountain Lion和XCode 4.4中不包含10.5或10.6的SDK。
答案 1 :(得分:6)
我尝试过更改g ++ - macx.conf fila但我仍然遇到错误。我发现使用:
QMAKE_CXXFLAGS += -fpermissive
在我的专业档案上做了伎俩。
答案 2 :(得分:2)
听起来好像我使用Clang
工具链(强制clang++
而不是llvm-g++
)我没有这个问题......