Reputation: 23016
I have a program in Qt creator that compiles and runs fine in a Windows machine. But as soon as I tried to compile it in a Mac OS X (10.9) I received these messages:
Undefined symbols for architecture x86_64:
"std::__1::__basic_string_common<true>::__throw_length_error() const", referenced from:
std::__1::enable_if<__is_forward_iterator<char*>::value, void>::type std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init<char*>(char*, char*) in libVolumeSelectorLib.a(NetCDFDataSource.o)
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [UI.app/Contents/MacOS/UI] Error 1
14:38:02: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project VVSIT (kit: Desktop Qt 5.4.0 clang 64bit)
When executing step "Make"
I have tried cleaning and compiling again in case some file built on Windows had made it to the Mac, but that is not the case, the problem continues happening.
I've checked these posts but their solutions didn't work:
Any idea how to solve this error?
Upvotes: 2
Views: 17039
Reputation: 23016
After some research I found this thread: Qt5.1/Qt5.2 + XCode 5.0.2 + Mac OS 10.9 (Mavericks), Can’t link to the libraries
That link contains the solution that worked for me, I had to edit the file:
/Applications/Qt/5.4/clang_64/mkspecs/macx-clang/qmake.conf
And change the line that says:
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
to:
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9
After that, I cleaned every subproject in my project, and compiled them again, and all is working fine now.
In case you wonder what does that change in the clang++
do, what it does is to change the parameter -mmacosx-version-min=10.7
to -mmacosx-version-min=10.9
.
Upvotes: 4