goormIDE에서 g++을 이용한 라이브러리, 실행파일 생성
필자는 군대 사지방(사이버지식정보방)에서 이것저것 코딩 연습을 하고 있다.
우리 부대의 쾌적한 컴퓨터는 무려 리눅스 기반으로 국내 개발한 '하모니카'라는 OS를 사용하고 있다.
이렇게만 보면 프로그래밍 연습하기에 참 좋을 수도 있겠다.
하지만 보안을 이유로 터미널 창과 관리자 권한을 막아두어 할 수 있는 것이 거의 없다. ㅎㅅㅎ
때문에 aws, googlecolab, goormIDE 등 여러 클라우드 서비스를 이용하게 되었다. 그중 가장 무난하게 C++ 언어 자체를 연습하기 좋은 것은 goormIDE였다.
cpp 컴파일 과정
1. GoormIDE 사용
goormIDE( https://ide.goorm.io/ )에 접속하여 회원 생성을 하고 가입하면 된다. goormIDE는 Doker 기반의 클라우드 컴퓨팅 서비스로 교육용 또는 중소기업의 클라우드 서버용으로도 사용되고 있다.
GPU 사용, 컨테이너 동시 실행, 항상 켜 두기 등의 몇 가지 기능을 제외하고는 모두 무료로 사용할 수 있기 때문에 교육용도로는 아주 괜찮은 편이다.
2. 컨테이너 생성하기
컨테이너 생성 시 소프트웨어 스택을 선택할 수 있는데 생각 외로 다양한 소프트웨어들을 쉽게 사용할 수 있다. 가장 마지막 Black를 선택하여 생성하고 원하는 소프트웨어를 직접 설치하여 사용 할 수도 있다.

컨테이너 생성에서 C++ 콘솔 프로젝트를 선택하여 프로젝트를 생성하면

위와 같은 "Hello, goorm" 예제가 포함된 메인 함수만 달랑 들어있다.
우측 상단의 빌드와 실행 버튼으로 코드를 실행해 볼 수 있다.
또한 하단의 터미널 창을 이용하여 원하는 라이브러리나 추가 모듈들도 마음껏 설치할 수 있는 우분투 환경을 제공한다.
CLI를 이용하여 버전을 확인해보면 컨테이너 생성 시 선택했던 Ubuntu 18.04를 확인할 수 있다.
3. g++ 설치 확인
우선 g++ 이 설치되어있는지부터 확인하자, CLI에 gcc --version 을 입력하여 확인해 볼 수 있다.
$g++ --version

그렇다 처음 컨테이너 생성 시 C/C++ 스택을 선택할 때부터 이미 g++, gcc가 설치되어 있다. ^^
4. 헤더 파일 작성
// myfunc.hpp
#include <iostream>
void hellofunc(int n);
//myfunc.cpp
#include <iostream>
#include "myfunc.hpp"
void hellofunc(int n){
for(int i = 0; i<n ; i++){
std::cout << "hello ";
}
std::cout << std::endl;
}
//main.cpp
#include "myfunc.hpp"
int main(){
myfunc(3);
}
5. 오브젝트 파일 생성
$g++ -c myfunc.cpp
명령어를 통해 'myfunc.o' 라는 파일 명을 가진 오브젝트 파일을 생성한다.
(물론 명령어를 실행하는 위치에 해당 파일들이 있어야 한다. 없을 경우 경로를 직접 작성해주어야 함)
$g++ main.cpp myfunc.o
명령어를 통해 'a.out' 라는 파일명의 실행 파일이 생성된다.

터미널 창에서 a.out 파일을 실행하면 다음과 같이 잘 작동한다.

그런데 이렇게 실행파일이 모두 a.out으로 생성되면 여러 개의 실행 파일을 만들 수 없을 것이다.
때문에 아래와 같이 생성할 실행파일의 이름을 지정하여 생성해 주는 것이 좋다.
$g++ -o hello main.cpp myfunc.o
문법 ) g++ -o (실행 파일명) (컴파일 대상)