이 콘텐츠는 선택한 언어로 제공되지 않습니다.
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 20.1.8.
To compile a C++ program, use clang++ instead of clang.
2.1. Prerequisites 링크 복사링크가 클립보드에 복사되었습니다!
2.2. Compiling a source file 링크 복사링크가 클립보드에 복사되었습니다!
You can compile source files and assembly language files with clang command to produce an executable binary. Add the -g flag to your clang command to include debug information.
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 링크 복사링크가 클립보드에 복사되었습니다!
You produce an executable when you compile your program with clang command. Run the program from the directory that contains the executable file.
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 a project contains several source files, compile each one to an object file with clang command. Link the resulting object files with clang to produce an executable.
To compile a C++ program, use clang++ instead of clang.
Procedure
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.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.ImportantAt 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.