HOWTO · C++

C++에서 .cc와 .cpp 파일 확장자의 차이점

C++ .cc와 .cpp 소스 파일을 선택하는 방법, GCC로 두 확장자를 컴파일하는 방법, 이름 변경 시 빌드 설정을 업데이트해야 하는 이유를 설명합니다.

이 페이지의 내용

.cc 파일은 C++ 소스 파일입니다. .cpp도 같은 용도로 쓰며, 일반적인 C++ 소스 파일에서 두 확장자는 서로 다른 C++ 언어가 아니라 이름 규칙입니다. 프로젝트나 빌드 도구가 이미 사용하는 확장자를 따르고, 새 프로젝트에서는 하나를 골라 일관되게 사용하세요. GCC는 두 확장자를 모두 C++ 입력으로 인식합니다.

GCC로 두 확장자 컴파일하기

다음 프로그램을 main.cc 또는 main.cpp로 저장합니다.

#include <iostream>
int main() { std::cout << "C++\n"; }

g++로 두 파일 이름을 모두 컴파일하고 실행합니다.

g++ -std=c++23 main.cc -o cc.out && ./cc.out
g++ -std=c++23 main.cpp -o cpp.out && ./cpp.out

두 명령 모두 다음을 출력합니다.

C++

이 결과는 Linux의 g++ (Ubuntu 15.2.0-16ubuntu1) 15.2.0에서 확인되었습니다. GCC 전체 옵션 문서.cc.cpp를 C++ 소스 접미사로 열거합니다. 이 예제에는 C++23을 지원하는 GCC/g++가 필요하며, 프로젝트가 다른 언어 표준을 요구하면 그 표준을 사용하세요.

확장자가 바꾸는 것

확장자는 컴파일러 드라이버나 빌드 도구가 입력 파일을 분류하는 데 도움을 줍니다. 한 파일의 코드를 다른 형태의 C++로 바꾸지는 않습니다. .cc.cpp 파일에는 완전한 프로그램, 함수 또는 헤더에 선언한 항목의 구현 코드를 넣을 수 있습니다. 헤더나 클래스 사용은 어느 확장자에도 필수가 아닙니다.

C++ 표준은 특정 파일 확장자를 의무화하지 않습니다. 인식 규칙은 컴파일러 드라이버와 도구가 정하므로, 운영 체제에 대한 일반화보다 기존 저장소의 규칙이 더 중요합니다.

프로젝트에서 .cc 또는 .cpp 선택하기

상황 실용적인 선택
저장소와 빌드 파일이 이미 한 확장자를 사용함 그 확장자를 따릅니다.
프로젝트 규칙이 .cc를 요구함 .cc를 사용합니다. 예를 들어 Google C++ Style Guide는 C++ 소스에 .cc를 지정합니다.
새 프로젝트에 규칙이 없음 .cc 또는 .cpp를 골라 일관되게 사용합니다.

특정 운영 체제와 연관된다는 이유만으로 어느 쪽이 본질적으로 더 이식성이 좋은 것은 아닙니다. 실제 프로젝트가 사용하는 컴파일러, IDE, 빌드 구성을 확인하세요.

일반적인 C++ 이름으로 .c를 사용하지 않기

여기서는 드라이버가 중요합니다. GCC의 일반 접미사 표는 .c를 C 입력으로 분류합니다. 하지만 g++ 드라이버 문서-x가 언어를 재정의하지 않는 한 g++.c, .h, .i 입력을 C++로 처리한다고 설명합니다. 확인한 호스트에서는 같은 C++ 프로그램을 main.c로 이름 지어도 다음 명령이 컴파일했습니다.

g++ -std=c++23 main.c -o c.out && ./c.out

출력은 C++였습니다. 반면 gcc -std=c23 main.c -o gcc-c.out는 C 드라이버가 이를 C로 처리하여 C++ 헤더 iostream을 찾지 못했기 때문에 이 프로그램에서 실패했습니다.

따라서 일반 C++ 소스에 .c를 사용하지 마세요. 결과가 빌드가 호출하는 드라이버에 따라 달라질 수 있습니다. 확장자 추론을 재정의해야 할 때 GCC는 -x c++를 허용하고, Clang CommandGuide는 이후 입력의 언어를 지정하는 -x를 문서화합니다. MSVC는 지정한 파일을 C++로 처리하는 /Tp를 문서화합니다. 정확한 빌드 시스템 설정은 다를 수 있습니다.

이름을 바꿀 때 빌드 업데이트하기

코드가 같아도 main.ccmain.cpp로 바꾸면 실패할 수 있습니다. CMake, Make 규칙, IDE 프로젝트 파일, 파일 글롭, 생성된 빌드 입력, 스크립트가 이전 이름을 나열하거나 한 확장자만 일치시킬 수 있기 때문입니다. 이러한 참조를 업데이트하고 프로젝트를 다시 빌드하여 변경을 확인하세요.

다음 구성 단계는 C++에서 여러 코드 파일을 사용하는 방법을 참조하세요.