"iostream not found" on Mac OS
-
I'm desperately trying to port an ancient Qt 4.8 application to Mac OS X 10.10. I already successfully ported it from Windows to Ubuntu 14.04 with almost no problems. However, on Mac I get the error of "iostream file not found". I know this sounds rather like an issue with my clang++/g++ compiler, however a simple hello-world program runs just fine.
I installed Xcode and the command line tools and I can also find iostream under "/usr/include/c++/4.2.1" since 'g++ -v' outputs:
@Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix@However, I don't know why 'clang++ -v' does not show the include path:
@Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix@I get the same error in QtCreator whether I use g++ with ' -spec macx-g++ QMAKE_CXX=g++4.2.1' or clang++ with '-spec unsupported/macx-clang'. Under Toolchain the compiler path also points to clang++ and g++ and not to clang or gcc.
If I additionally specify to use the std library includes with 'INCLUDEPATH+=/usr/include/c++/4.2.1' I get heaps of errors in the file "__hash_table" located in "MacOs/Programme/Xcode/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1"
-
Please make sure to use the newest Qt 4.8 version available (4.8.6), or even the prerelase snapshot of Qt 4.8.7. Older versions do not know about new Mac OS systems and compilers, and Apple has a nasty habit of changing the build infrastructure often and in a build-breaking manner.
Also, prefer using clang over g++ on that platform.
-
Thanks for the quick reply!
I am using Qt 4.8.6, sorry that I wasn't that specific! As I said, a hello-world example program using iostream is working for both g++ and clang++.
-
I managed to overcome this issue by using QMAKE_CXXFLAGS += -stdlib=libstdc++ instead of QMAKE_CXXFLAGS += -stdlib=libc++ and accepting a few other troubles instead