c++공부를 위해 기본적으로 컴파일러가 필요합니다.
결론부터 말하자면 컴파일러를 설치하기 보다는 최신 컴파일러를 제공하는 툴을 설치하시길 추천드립니다.
c++ 공부를 위해 저는 Dev C++를 설치해 사용할겁니다. (설치 방법은 아래로 쭉쭉 이동해주세요)
컴파일러에 따라 (g++, cl) 다른 결과를 내는 경우가 있습니다.
vc++, vs code, xcode, eclipse 등 통합 툴에서 이미 컴파일을 제공하고 대부분 툴에서 제공하는 컴파일러를 활용합니다. 컴파일 마다 컴파일 방식이 다르고 공부하는 과정에서 아래 두 개의 컴파일러를 실행해 보고 결과를 비교해보면서 그 차이를 확인해 볼 수 있습니다.
g++ 컴파일러 사용시 컴파일 (추천 커멘드)
- g++ hello.cpp -std=c++1z
-std=c++11 | C ++ 컴파일에 C++ 11 을 사용하겠다는 의미 |
-std=c++1z | C ++ 컴파일에 C++ 17 을 사용하겠다는 의미 |
그래서 한 번 테스트 해봤는데요... 제가 사용 중인 시스템에서는 11버전은 지원을 하는데 그 이후 버전은 지원하지 않나봅니다.
~/build_test()% g++ -std=c++11 hello.cpp ~/build_test()% g++ -std=c++1z hello.cpp g++: error: unrecognized command line option ‘-std=c++1z’ ~/build_test()% g++ -std=c++17 hello.cpp g++: error: unrecognized command line option ‘-std=c++17’ ~/build_test()% g++ -std=c++14 hello.cpp g++: error: unrecognized command line option ‘-std=c++14’ ~/build_test()% |
g++ version 확인 방법
% g++ --version g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
gcc 버전이 낮아 C++17 버전이 지원이 안되는 거네요. g++ (gcc) 높은 버전이 필요합니다.
- C++17 is not supported by GCC v4.8.
- C++17 is not supported by GCC v4.9.
- C++17 is supported by GCC v5.0, GCC v6.0, GCC v7 (-std=c++1z)
- C++17 is supported by GCC v8 (-std=c++17) (-std=c++1z은 지원안됩니다)
(참고) c++ 상위 버전 사용을 위해서는 mingw 설치가 필요합니다.
<통합 툴을 사용하면 해당 과정은 하지 않아도 됩니다.>
https://nuwen.net/ => c++ => MinGW Distro => mingw-17.1-without-git.exe(45.1MB) 다운&설치
cl 컴파일러 사용시 컴파일 (추천 커멘드)
- cl hello.cpp /std:c++latest /nologo /EHsc /Za /MD
/nologo | 로고를 출력하지 않기 |
/EHsc | 예외 관련 warning 출력하지 않기 |
/Za | 마이크로소프트 확장 문법 사용하지 않기 |
/MD | C/C++ 표준 라이브러리 DLL 버전 사용하겠다는 의미 (원도우즈와 관련) |
한번 cl 컴파일러를 실행시켜봤는데요... 제가 사용 중인 시스템에서는 cl 이 설치가 안되어 있는 건가요...
~/build_test()% cl hello.cpp /std:c++latest /nologo /EHsc /Za /MD bash: cl: command not found |
cl 컴파일러 사용을 위해서는 역시 설치가 필요합니다.
귀차니즘이 발동해서.. .cl은 그냥 skip할게요...
(참고) build.bat 파일로 컴파일러 실행시키기
build.bat 파일에 아래 내용을 넣어 두 개 컴파일러를 동시에 실행시키고 결과를 비교해볼 수 있습니다.
두 컴파일러 실행이 문제 없을 때는 이렇게 batch 파일을 만들어서 실행시켜 볼 수 있겠습니다.
- build hellp.cpp
g++ %1 -std=c++1z cl %1 /std:c++latest /nologo /EHsc /Za /MD |
vc++, vs code, xcode, eclipse 등 통합 툴 사용하는 게 좋을 듯 싶네요.
Dev-C++ for Windows 10/8/7
아직 VS code 혹은 vc++ 설치하지 않으셨다면 Dev C++ 툴을 소개합니다.
저는 상대적으로 매우 가벼운 툴인 Dev C++ 를 사용합니다. 빠르고, 간편하고, 무료인 C/C++ 에디터 입니다. 해당 버전은 TDM-GCC 9.2.0 64-bit Release를 포함하고 있어 최상위 버전을 지원합니다.
A fast, portable, simple, and free C/C++ IDE
Embarcadero Dev-C++ is a new and improved fork (sponsored by Embarcadero) of Bloodshed Dev-C++ and Orwell Dev-C++. It is a full-featured Integrated Development Environment (IDE) and code editor for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as its compiler.
Embarcadero Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler. Embarcadero Dev-C++ is built using the latest version of Embarcadero Delphi. Embarcadero Dev-C++ has a low memory footprint because it is a native Windows application and does not use Electron. Optimized for parallel compilation on modern multi-core machines.
https://sourceforge.net/projects/embarcadero-devcpp/
버전을 확인해보면 9.2.0 이 보입니다.
설치하고 실행시키면 아래와 같은 화면이 뜹니다.
간편하고 간단합니다. 컴파일(F9) 누르면 실행됩니다.
Compile, Run, Compile &Run, Rebuild ALL 버튼 및 단축키를 제공됩니다.
Tools -> Complie Options
아래와 같이 컴파일 옵션을 주면 17 버전을 사용할 수 있습니다.
기본 코드를 넣어 hello 를 출력해 보려합니다.
#include <iostream>
using namespace std;
int main() {
cout << "hello" << endl;
}
단축키 F11 (complie & Run) 을 눌러 실행시켜 봅니다. hello가 출력되었네요!
C++ 열공ㅋ
'C++' 카테고리의 다른 글
[C++] header : iostream, cstdio, cstdlib, (0) | 2021.08.04 |
---|---|
[C++] using namespace std; (0) | 2021.08.03 |
[C++] namespace, using (0) | 2021.08.02 |
Online C++ compiler (무료 온라인 C++ 컴파일러) (0) | 2021.08.01 |
Boost C++ Libraries 설치 (Dev C++) (0) | 2021.07.29 |
댓글