C Programming in Linux: Basic GCC usage

Source: Internet
Author: User

It is best to start with the command line at the beginning, so that you can familiarize yourself with the entire process of programming, compilation, debugging, and execution. You can write programs using vi/Vim (I personally think Vim is better than vi) or other editors.

The GCC command is used for compiling. First, you must be familiar with the usage of GCC commands.

GCC commands provide many command options, but not all of them should be familiar with them. You can master several common options at the beginning, and then learn other options later, in this case, too many options may affect your learning confidence.

I. Common compilation Command Options
Assume that the source program file name is test. C.

1. No option to compile the link
Usage: # GCC test. c
Purpose: Prepare, compile, and link test. C to form an executable file. The output file is not specified here. The default output is a. Out. After compilation, you can see that a. Out file is generated. Enter./A. OutExecute the program../Indicates that the file is in the current directory, and A. out is the executable program file name.

2. Option-o
Usage: # GCC test. C-o Test
Purpose: pre-process, compile, compile, and link test. C to form the executable file test. The-O option is used to specify the name of the output file. Input./TestExecute the program.

3. Option-e
Usage: # gcc-E test. C-O test. I
Purpose: preprocess test. C to output the test. I file.

4. Option-S
Usage: # gcc-s test. I
Purpose: Compile the pre-processing output file test. I into the test. s file.

5. Option-C
Usage: # gcc-C test. s
Purpose: Compile the output file test. s and output the file test. O.

6. No option Link
Usage: # GCC test. O-o Test
Purpose: link the compiled output file test. oto the final executable file test. Input./TestExecute the program.

7. Option-o
Usage: # gcc-O1 test. C-o Test
Purpose: Use compile optimization level 1 to compile the program. Level 1 ~ 3. The higher the level, the better the optimization effect, but the longer the Compilation Time. Input./TestExecute the program.

8. Compile the program using the C ++ STD Library
Usage: # GCC test. cpp-O test-lstdc ++
Purpose: compile test. cpp into a test executable file. -Lstdc ++ specifies the link to the STD c ++ library.

Ii. Multi-source file Compilation Method

If there are multiple source files, there are basically two compilation methods:
[Assume there are two source files: Test. C and testfun. C]

1. Compile multiple files together
Usage: # GCC testfun. C test. C-o Test
Purpose: Compile testfun. C and test. C respectively and link them to the test executable file.

2. compile each source file separately, and then link to the target file output after compilation.
Usage:
# Gcc-C testfun. C // compile testfun. c into testfun. o
# Gcc-C test. C // compile test. c into test. o
# Gcc-O testfun. O test. O-o Test // link testfun. O and test. OTO Test

Compared with the above two methods, the first method requires all files to be re-compiled during compilation, while the second method can only re-compile the modified files, and the unmodified files do not need to be re-compiled.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.