GCC가 .cpp 파일을 C로 컴파일하도록 강제 적용
외부에서 제공한 .cpp 파일을 가지고 있습니다.이것은 C 호환 코드와 약간의 C++의 혼합입니다.C++ 코드는 C++ 기능을 활용하기 위한 C 주변의 래퍼일 뿐입니다.
그것은 사용합니다.#ifdef __cplusplus
C++ 코드를 보호하기 위한 매크로, 좋습니다.유감스럽게도 GCC를 사용하여 컴파일을 시도하면 파일 종료로 인해 C++로 처리됩니다.사이의 차이점을 알고 있습니다.gcc
그리고.g++
저는 C++로 컴파일하고 싶지 않습니다.
GCC가 이 파일을 C 파일로 처리하도록 강제할 수 있는 방법이 있습니까?예를 들어 사용해 보았습니다. --std=c99
그러나 이렇게 하면 C99가 C++에 유효하지 않다는 오류가 발생합니다.
파일 이름을 .c로 변경하는 것은 가능하지만, 외부에서 제공하는 것이고 원본으로 유지하는 것이 좋을 것이기 때문에 가능하면 피하고 싶습니다.
그-x
에 대한 선택권.gcc
다음과 같은 모든 입력 파일의 언어를 지정할 수 있습니다.
$ gcc -x c your-file-name.cpp
파일 하나만 특수하게 구분하려면 다음을 사용할 수 있습니다.-x none
특수 처리를 종료합니다.
$ gcc -x c your-filename.cpp -x none other-file-name.cpp
(your-filename.cpp
C로 컴파일될 예정인 반면,other-file-name.cpp
확장자를 사용하고 C++로 컴파일합니다.)
foo.cpp를 C 파일로 컴파일하려면 foo.c라는 이름의 새 파일을 만들고 다음을 전체 내용으로 넣을 수 있습니다.
#include "foo.cpp"
이제 foo.cpp 대신 foo.c를 컴파일합니다.
우리는 CVS의 10년 역사를 보존하면서 일부 파일에서 C++ 기능을 사용하기 시작하기 위해 이것을 사용했습니다(.c 파일을 C++로 컴파일).또한 GCC뿐만 아니라 각 플랫폼의 네이티브 컴파일러를 사용하여 빌드하므로,-x
절반 수준의 컴파일러에 대해 동등한 명령을 실행한 다음 빌드 시스템이 특정 파일에만 해당 명령을 적용하도록 합니다.
언급URL : https://stackoverflow.com/questions/4216247/forcing-gcc-to-compile-cpp-file-as-c
'sourcecode' 카테고리의 다른 글
SQL Server에서 지정된 월, 일 및 연도의 요일 이름을 개별적으로 가져옵니다. (0) | 2023.07.08 |
---|---|
UIViewController viewDidLoad vs. viewWill표시됨:적정한 분업은 무엇입니까? (0) | 2023.07.08 |
로그를 역순으로 가져오는 방법은 무엇입니까? (0) | 2023.07.03 |
Jooq native 쿼리가 연결 정보를 사용하지 않습니다. (0) | 2023.07.03 |
T-SQL에 int가 아닌 숫자에 대한 이유가 있습니까? (0) | 2023.07.03 |