安装完整版Xcode后我的C++万能库不见了

前言

昨天因为安装了flutter的原因,因为这个需要完整版Xcode,之前都是安装的命令行版本的,所以直接去苹果应用商店安装了。但是万万没想到的是,完整版Xcode竟然更改了我使用的Clang地址。他更改到了Applications文件夹下的完整版Xcode里面。看来是Xcode自带了Clang然后就直接更改了默认地址。

好巧不巧昨天codeforces Round 944开赛前三分钟我才发现了问题。因为我的万能库引用不能用了。还好我有在博客写过mac电脑vscode的c++运行配置。所以只花了五分钟就添加好了万能库文件。不过我所经历的和上篇文章有所不同。所以在此记录一下。

在完整Xcode里添加万能库文件

  1. 同样是在终端里输入echo | g++ -v -x c++ -E -, 其中/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include是我们要修改的路径。
  2. 修改include文件夹的访问权限为读写。sudo chmod 777 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
  3. 创建bits文件夹并进入。mkdir bits, cd bits/。这里电脑会提示消息,因为我终端用的是Iterm2,提示我这个软件想要修改Applications文件里的东西,是否给权限,点开消息在设置里允许就可以。
  4. 创建stdc++.htouch stdc++.h
  5. 这里如果直接 open stdc++.h 的话会发现默认是Xcode打开的,想使用Vscode打开使用code stdc++.h即可。同样系统会消息提示是否给权限修改,选择允许即可。
  6. 将代码复制粘帖即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// C++ includes used for precompiling -*- C++ -*-

// Copyright (C) 2003-2014 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.

// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.

/** @file stdc++.h
* This is an implementation file for a precompiled header.
*/

// 17.4.1.2 Headers

// C
#ifndef _GLIBCXX_NO_ASSERT
#include <cassert>
#endif
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>

#if __cplusplus >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#endif

// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>

#if __cplusplus >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#endif



后话

因为是直接在应用文件夹里改的,不知道以后更新软件后会不会消失,不过到时候在说吧,添加方法也比较简单。