C语言程序编译和运行,看这一篇就够了
概述
本篇主要讲述如何在terminal终端命令行中进行C语言程序的编译和运行。
1 编译方法
1.1 首先,单文件的编译和运行
// 编译,gcc是编译的命令,-o表示编译后生成的可执行二进制文件
gcc cfile.c -o cfile
// 运行,很简单
./cfile
1.2 如果一次性编译多个文件,实际测试时是这么处理的:
// 编译,可以在gcc后添加所有的要编译的文件,比如多个c函数文件,c头文件,最终编译为一个可执行二进制文件
gcc cfile1.c cfile2.c chead.h -o cfile
// 运行,和单文件的运行一样
./cfile
2 编译时的坑
- 编译报错1
/tmp/ccYwIyIb.o:在函数‘main’中:
cfile1.c:(.text+0x37):对‘sqrtf’未定义的引用
或者报错:Undefined: _sqrt
或者报错:'sqrt': unresolved external
原因: 源码中引入了 math.h 头文件,但是编译器链接器没找到相应的数学库。
解决方法: 在编译时,使用 -lm 标记(flag) 显式指示链接器搜索数学库。
具体编译命令为: gcc cfile1.c -o 16.15generic -lm