프로그래밍/C,C++

[Mac M1] includepath 재설정_g++, gcc / #include<bits/stdc++.h>

gameObject 2023. 10. 29. 19:09
728x90

앞선 글에서 sudo만으로 해결한 줄 알았다.

https://kyungtaek.tistory.com/104

 

[Mac M1]mkdir: bits Permission denied 오류 해결_#include<bits/stdc++.h>

#include 자주 사용하는 라이브러리들(string, stdio.h, iostream 등..)을 일일히 추가해야하는 번거로움을 없앨 수 있다. 정확히 말하면 C++의 표준라이브러리가 모두 포함되어있다고 한다. 특히 경로 지

kyungtaek.tistory.com

 

그런데 실행이 계속해서 되지 않았다.

includepath를 다시 설정하라는 빨간 밑줄만 무한 반복 생성,,,


해결 과정

다른 분들의 경우에는 

Gcc 설치경로 (InstalledDir) 위치인것으로 보였는데 나의경우에는 Xcode.app 안쪽에 설치되어있는것으로 나온다.

 

그래서 저기 어플리케이션 아래쪽에도 bits폴더를 만들어서 stdc++.h 헤더도 만들어서 넣어보고

Library/Developer/CommandLineTools/usr/include 안에 bits 폴더를 만들어서 stdc++.h 도 만들어서 넣어보고

여러 블로그들 다 참조해서 따라해도 해결이 안되었다.


결론 (해결방법)

나의 경우 /usr/local/ 경로에 include가 없었었다.

그래서 /usr/local/경로에 만들어두지를 않았었는데 똑같이 한번 만들어 보기로 했다.

cd /usr/local
sudo mkdir include

cd include
sudo mkdir bits

cd bits
sudo vi stdc++.h

이렇게 해주었다.

 

될것 같았지만?? 되지않았다.

그 이유는 c_cpp_properties.json 파일의 컴파일러 패스가

/usr/bin/clang 으로 되어있어서 였던것 같다.

 

문득, 나는 gcc --version으로 검색을해서 그 위치에 includepath를 경로 추가해주려고 하는데

왜 컴파일러는 clang을 쓰는거지? 라는 생각이 들어서

/usr/bin/g++ 로 변경하였더니 감쪽같이 해결이 되었다.

 

정리

1. 다른 위치에 includePath 설정하는것이 아닌, /usr/local에 include 폴더 생성, bits 폴더 생성, stdc++.h 파일 생성하자.

2. 컴파일러를 clang에서 g++로 변경하자.


참조용 json 파일 3가지 & stdc++.h 내용

stdc++.h

  #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

 

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/g++",
            "intelliSenseMode": "macos-clang-arm64"
        }
    ],
    "version": 4
}

 

launch.json

{
    "configurations": [
        {
            "name": "C/C++: clang 활성 파일 빌드 및 디버그",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "preLaunchTask": "C/C++: clang build active file"
        }
    ],
    "version": "2.0.0"
}

 

task.json

{
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: clang++ build active file",
            "command": "/usr/bin/clang++",
            "args": [
                "-std=c++17",
                "-stdlib=libc++",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "Task generated by Debugger."
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}
728x90

'프로그래밍 > C,C++' 카테고리의 다른 글

define  (1) 2023.11.11
typedef  (0) 2023.11.11
[Mac M1]mkdir: bits Permission denied 오류 해결_#include<bits/stdc++.h>  (0) 2023.10.28
[c++] string::substr 사용법  (0) 2023.10.26
C++ 입력 함수 / cin, cin.get(), getline()  (1) 2023.10.26