마음만은 새내기

항상 초심을 잃지 않고 생활하겠습니다~!

프로그래밍/Baekjoon Online Judge

BOJ 채점 환경과 비슷하게! Ubuntu에 컴파일러 설치하기

동동매니저 2019. 2. 6. 18:26

안녕하세요~!

제가 BOJ에서 문제를 풀면서, 채점 환경이 Ubuntu라는 것을 알게 되었어요...

그래서!! 이번에는, BOJ 채점 환경과 유사하게 Ubuntu를 설치했다고 가정하고, 각종 컴파일러를 설치해보겠습니다.


Ubuntu를 아직 설치하지 않으셨다면, 설치 ISO 이미지 파일이 필요한데요,

현재 최신 버전은 18.04 LTS이지만, 여기에서는 채점 환경에 맞추어 16.04 LTS로 설치하겠습니다.

(여기에서 LTS는 long-term support의 약자로, 장기 지원을 의미합니다. 반드시!! LTS로 설치해주세요!!)

[Ubuntu Desktop 16.04.5 LTS 64비트 다운로드]

(위 링크는 국내의 Kakao 미러 사이트 링크입니다.)


이제부터 필자가 주로 사용하는 컴파일러를 설치해보겠습니다.

(컴파일러 이름 대신 언어 이름 기준!!)


[01. C & C++]

Ubuntu에 기본적으로 GCC와 G++가 내장되어있습니다.

(하지만, 채점 서버의 버전보다 낮다는 점...)

채점 서버 : 7.3.0

기본 내장 : 5.4.0


★ 컴파일 옵션 (C) ★

gcc Main.c -o Main -O2 -Wall -lm -static -std=c99 -DONLINE_JUDGE -DBOJ


★ 컴파일 옵션 (C++) ★

g++ Main.cc -o Main -O2 -Wall -lm -static -std=gnu++98 -DONLINE_JUDGE -DBOJ


★ 실행 명령어 (C & C++) ★

./Main


[02. Java]

여기에서는 Open JDK가 아닌, Oracle JDK를 설치하겠습니다.

== 설치 방법 ==

1. 터미널을 열고

2. sudo add-apt-repository ppa:webupd8team/java를 입력 (PPA 추가)

3. sudo apt-get update를 입력 (apt 업데이트)

4. sudo apt-get install oracle-java8-installer 입력 (Java 설치)

5. 라이선스 동의 후 설치


★ 컴파일 옵션 (Java) ★

javac -J-Xms1024m -J-Xmx1024m -J-Xss512m -encoding UTF-8 Main.java


★ 실행 명령어 (Java) ★

java -Xms1024m -Xmx1024m -Xss512m -Dfile.encoding=UTF-8 Main


[03. Pascal]

여기에서는 Free Pascal을 사용합니다.

== 설치 방법 ==

1. 터미널을 열고

2. sudo apt install fp-compiler-3.0.0 입력


★ 컴파일 옵션 (Pascal) ★

fpc Main.pas -O2 -Co -Ct -Ci


★ 실행 명령어 (Pascal) ★

./Main


[04. Python 3]

Python도 C, C++와 마찬가지로 기본 내장 라이브러리입니다.

(이 언어도 채점 서버와 버전이 맞지 않네요 ㅠ.ㅠ)

채점 서버 : 3.7.1

기본 내장 : 3.5.2


★ 컴파일 옵션 ★

python3 -c "import py_compile; py_compile.compile(r'Main.py')"


★ 실행 명령어 ★

python3 Main.py


[05. Kotlin]

여기에서는 JVM 버전과 Native 버전을 나누어서 설명합니다. (혼동하지 마세요!!)

== 설치 방법 (공통) ==

1. Ubunt Software 실행

2. 'kotlin' 검색 및 설치


★ 컴파일 옵션 (JVM 버전) ★

kotlinc-jvm -J-Xms1024m -J-Xmx1024m -J-Xss512m -include-runtime -d Main.jar Main.kt


★ 실행 명령어 (JVM 버전) ★

java -Xms1024m -Xmx1024m -Xss512m -jar Main.jar


★ 컴파일 옵션 (Native 버전) ★

kotlinc-native -o Main -opt Main.kt


★ 실행 명령어 (Native 버전) ★

./Main.kexe



[참고]

만약 입력(또는 출력) 데이터의 크기가 크다면?

터미널에서 '<', '>'를 사용해보세요!

(예시)

실행파일 < 입력파일 > 출력파일

(표준 입출력 기준!)