Linux 터미널에서 다음과 같은 명령어로 C++ 소스 파일을 컴파일했다고 가정해 보겠습니다.
$ g++ helloworld.cpp
1단계: a.out 파일 생성 여부 확인
컴파일이 성공적으로 완료되면 현재 작업 디렉터리에 a.out이라는 실행 파일이 자동으로 생성됩니다. 가장 먼저 할 일은 이 파일이 실제로 존재하는지 확인하는 것입니다.
$ ls -l a.out
2단계: 프로그램 실행하기
파일이 정상적으로 생성되었다면, 명령줄에서 다음과 같이 입력하여 프로그램을 실행할 수 있습니다.
$ ./a.out
여기서 ./는 현재 디렉터리를 의미합니다. Linux는 기본적으로 보안상의 이유로 현재 디렉터리를 PATH 환경 변수에 포함하지 않기 때문에, 실행 파일 이름만 입력하면 'command not found' 오류가 발생할 수 있습니다. 반드시 ./a.out처럼 경로를 함께 지정해 주세요.
3단계: 실행 권한 부여하기
대부분의 경우 위 과정만으로 소스 프로그램의 출력 결과가 화면에 정상적으로 표시됩니다. 하지만 간혹 a.out이 실행 가능한 파일이 아니라는 오류 메시지가 나타나는 경우가 있습니다. 이는 파일에 실행 권한(execution permission)이 부여되지 않았기 때문입니다.
다음 명령어로 a.out 파일의 속성을 확인한 뒤, 실행 권한이 없다면 권한을 추가해 주세요.
$ chmod +x a.out
시스템 설정에 따라 이 작업에는 sudo 관리자 권한이 필요할 수 있습니다. 그런 경우 다음과 같이 입력하면 됩니다.
$ sudo chmod +x a.out
정리
위 절차를 요약하면 다음과 같습니다.
g++ helloworld.cpp로 컴파일을 수행한다.ls명령으로 a.out 파일이 생성되었는지 확인한다../a.out으로 프로그램을 실행한다.- 실행 권한 오류가 발생하면
chmod +x a.out으로 권한을 부여한다.
대부분의 경우 실행 권한만 올바르게 설정하면 문제가 해결됩니다. 그래도 오류가 지속된다면 파일 시스템 마운트 옵션(noexec)이나 바이러스 백신 소프트웨어의 간섭 여부도 함께 점검해 보시기 바랍니다.