Xcode 11.1: iostream' file not found

2020-07-13 08:39发布

问题:

I just updated my MacBook Pro to macOS Catalina 10.15, and tried to compile and run a C++ command line program, but I had a problem which didn’t exist on previous versions;

This is simply the code:

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello, World!\n";
    return 0;
}

The code compiles and outputs the expected, but still the Xcode says:

fatal error: 'iostream' file not found

I tried changing the Build Settings/C++ Standard Library to libstdc++, but a warning says:

warning: include path for stdlibc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead

And the same iostream error still exists.

回答1:

So, I restarted my laptop and everything seems to be fine right now, thanks for those who tried to help.



回答2:

libstdc++ is not OK for Xcode Build & Compile time,

libstdc++ is OK for iPhone Run Time


From answer recommended by @Alan Birtles

libstdc++ Support was removed from the iOS 12.0 Simulator runtime, but it remains in the iOS 12.0 (device) runtime for binary compatibility with shipping apps.


I encountered this when declaration in .hpp file.

#include <iostream>
#include <string>

OK with

#ifdef __cplusplus

#include <iostream>
#include <string>

// usage code
#endif


回答3:

I had the same problem and used the following youtube video to fix it. https://www.youtube.com/watch?v=hrPm7tWC-BI&feature=youtu.be

or you can follow this path. Make sure to include the quotation marks

Project - Build Settings - Search Paths - Headers Search Paths, and add the following path: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/"