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. 编译报错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

posted @ 2022-02-11 18:21  mediocrep  阅读(1867)  评论(0编辑  收藏  举报
既然选择了远方,便只顾风雨兼程!