(2020.06.30)
- 如何complie和run一个文件,在terminal中
在terminal输入gcc -o target_file xxx.cpp。其中xxx.cpp是被complie的文件,target_file是compile后保存的文件。如果compile通过,则在同一个目录下生成target_file的文件。输入./target_file即可运行该文件。
(2020.11.08 Sun)
上面用到的编译工具gcc(GNU compiler collection)是GNU开发的编译器,支持C/C++/JAVA/GO等语言。其常用的指令如下。首先生成一个main.c文件如下
#include<stdio.h>
int main(void)
{
printf("\n some text\n");
return 0;
}
- 指定可执行文件 -o
$gcc main.c #最简单调用方式
$gcc main.c -o main # 编译main.c并生成一个名为main的可执行文件
(2020.11.10 Tues)
- 显示所有warning信息 -Wall
$gcc -Wall main -o main
- 只看预处理结果 -E
$gcc -E main.c > main.i
- 生成汇编代码 -S
$gcc -S main.c > main.s
- 仅生成complied code(不含连接link) -C
$gcc -C main.c #生成main.o
- 生成所有中间文件(含可执行文件) -save-temps
$gcc -save-tempts main.c
$ls
a.out main.c main.i main.o main.s
- 与共享库连接 -l
$gcc -Wall main.c -o main -lCPPfile # main.c与libCPPfile库相连,生成最终main
- 创建位置独立代码 -fPIC
该指令用于创建共享库,使其位置独立
$gcc -c -Wall -Werror -fPIC Cfile.c
$gcc -shared -o libCfile.so Cfile.o
- 打印所有executed指令 -v
$gcc -Wall -v main.c -o main
- Enable the support of ISO C89 programs -ansi
$gcc -Wall -ansi main.c -o main
- 字符char翻译成无符号字符 -funsigned-char
$gcc -Wall -funsigned-char main.c -o main
- 字符char翻译成有符号字符 -fsigned-char
$gcc -Wall -fsigned-char main.c -o main
- 编译时间宏complie time macro -D
$gcc -Wall -DMY_MACRO main.c -o main
- warning转化成error -Werror
$gcc -Wall -Werror main.c -o main
- 通过文件给出gcc的选项 @
$cat option_file #选项写入option_file这个文件
-Wall -omain
$gcc main.c @option_file
main.c: In function ‘main’:
main.c:6:11: warning: ‘i’ is used uninitialized in this function [-Wuninitialized]
$ls main
main
网友评论