mac (Mojave)로 brew gcc 설치하면 움직이지 않았을 때의 해결책

mac (Mojave)로 brew gcc 설치하면 움직이지 않았을 때의 해결책

2022-10-03 last update

6 minutes reading Mojave GCC brew Mac g++

이전



최근 C언어의 TA를 하거나 atom에서 VScode로 갈아타거나 하고 있으므로, 드디어 C, C++의 환경 정비를 하려고 그 주변을 조사하고 있다고,

g++로 하면 동경의 #include <bits/stdc++.h> 를 사용할 수 없는가...!

AtCoder에서 C++을 사용하는 사람들이 사용하고 있습니다 #include <bits/stdc++.h>
나도 사용하고 싶다! (゚Д゚)

발생한 문제



막상 컴파일했다.

그리고 나온 오류
ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64): 
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd Undefined symbols for architecture x86_64: "___cxa_atexit", referenced from: __static_initialization_and_destruction_0(int, int) in ccEBCemd.o 
ld: symbol(s) not found for architecture x86_64 collect2: 
error: ld returned 1 exit status

...라이브러리...?64bit...?(´· ω ·`)
심볼릭 링크는 붙였고 풀 패스로 호출해도 통과하지 않는다.
clang으로 컴파일은 통과하기 때문에 코드가 잘못되어 있는 것도 아니다.
(덧붙여서 그 주위의 통상의 세팅에 대해서는 이쪽의 기사에 신세를졌습니다
htps : // 코 m / 엔 gTks / ms / 펑 2 7b4d264 7 052c6 # 5-stdch )

먼저 결론



Xcode 압데하면 치료했습니다. 잔디.

도중 과정



3시간이나 반나절인지 4고 8고고 더 소지한 pro와 air 양쪽 모두 시험해, 거구 이것은 이제 무리라고 stack overflow에 던진다.
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 58643485 / 엔 s ぇ ぇ ぇ ぇ ぇ ん ド ー ー ー ー ー ー ー ー ーー인 s타르/58687589 #58687589

코멘트 해 주신 분 중(분)편이,

"sysroot가 command line tool SDK에 세트되어있는 것처럼 보이기 때문에 이것을 두드려보십시오"g++ --sysroot=/ -o test test.cpp
그러면 에러 내용이 바뀌었다.
매우 잊어버렸지만 대체로 이런 느낌이었다.
fatal error: wchar.h: No such file or directory
 #include <wchar.h>
          ^~~~~~~~~

.... 표준 라이브러리가 어땠어?

그 증거에 도서관 include 없이
int main(){}

컴파일을 시도하면 거의 통과합니다.

...아, 도서관이군요.

그러면 이쪽은 잘 일어나고 있는 문제인 것 같고, 아무래도 Mojave라고/usr/include 근처인가 표준 라이브러리가 어딘가 되어 버리고 있는 것 같다. (매운)
(최근의 패치에서는 고치고 있을지도 모른다)

참고:
htps : // 코 m / 타무타 무타 / ms / 0 a d8 a 11 5d 195 afcb
htps : // 놀라운 l. 코m/쿠에 s치온 s/169308

이 표준 라이브러리 어딘가 버렸어 문제를 해결하려면 Xcode나 gcc를 재설치하는 것 같다.
제 경우에는 압데로 치료했습니다. (4고 8고고 있을 때 gcc를 다시 넣었지만)

어? 평소 압데 하지 않는 것이 나쁘다?
미안해...(´·ω·`)