이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 2. The Clang compiler


Clang is an LLVM compiler front end for the C-based languages C, C++, Objective C/C++, OpenCL, and Cuda. LLVM Toolset is distributed with Clang 19.1.7.

Note

To compile a C++ program, use clang++ instead of clang.

2.1. Prerequisites

2.2. Compiling a source file

Use the Clang compiler to compile source files and assembly language source files. Clang creates an executable binary file as a result of compiling; add the -g flag to enable debug information. To be able to debug your code, enable debug information by adding the -g flag to your Clang commands.

Note

To compile a C++ program, use clang++ instead of clang.

Procedure

  • Compile your program:

    $ clang -g -o <binary_file> <source_file>

    Replace <binary_file> with the name of your output file and <source_file> with the name of your source file.

2.3. Running a program

The Clang compiler creates an executable binary file as a result of compiling. Run your program by executing the binary from the directory that contains it.

Prerequisites

Procedure

  • To run your program, enter in the directory containing the executable file:

    $ ./<binary_file>

    Replace <binary_file> with the name of your executable file.

2.4. Linking object files together

By linking object files together, you can compile only source files that contain changes instead of your entire project. This approach can reduce build time when you update a subset of sources.

When you are working on a project that consists of several source files, use the Clang compiler to compile an object file for each of the source files. As a next step, link those object files together. Clang automatically generates an executable file containing your linked object files. After compilation, link your object files together again.

Note

To compile a C++ program, use clang++ instead of clang.

Procedure

  1. Compile a source file to an object file:

    $ clang -o <object_file> -c <source_file>

    Replace <object_file> with the name of your object file and <source_file> with the name of your source file.

  2. Link object files together:

    $ clang -o <output_file> <object_file_0> <object_file_n>

    Replace <output_file> with the name of your output file and <object_file> with the names of the object files you want to link.

    Important

    At the moment, certain library features are statically linked into applications built with LLVM Toolset to support their execution on multiple versions of Red Hat Enterprise Linux. This creates a small security risk. Red Hat will issue a security erratum in case you need to rebuild your applications due to this risk.

    Do not statically link your entire application.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동