fedora上编译运行C文件

2023-10-26

#include <stdio.h>
int main(void)
{
        float value;
        value = sin ( 3.14 / 2 );
        printf("%f/n",value);
} 

 (三角函数里面的 sin(90度角),要注意的是,大多数的程序语言都是使用径度而不是一般我们在计算的『角度』, 180 度角约等于 3.14 径度)

 

当使用gcc编译器编译含数学函数的C程序时,会出现undefined reference to `sin'错误.这种错误一般是由于缺少库造成的.

[guest@test guest]# gcc sin.c -lm -L/lib -L/usr/lib
# 特别注意,那个 -lm 可以拆开成两部份来看,
# -l 是『加入某个函式库(library)』的意思,而
# m 则是 libm.so 这个函式库,其中, lib 与附档名(.a 或 .so)不需要写
# 所以 -lm 表示使用 libm.so (或 libm.a) 这个函式库的意思~
# 至于那个 -L 后面接的路径呢?这表示:
#『我要的函式库 libm.so 请到 /lib 或 /usr/lib 里面搜寻!』
[guest@test guest]# ./a.out
1.000000

 由于 Linux 预设是将函式库放置在 /lib 与 /usr/lib 当中,所以您没有写 -L/lib 与 -L/usr/lib 也没有关系的!不过,万一哪天您使用的函式库并非放置在这两个目录下,那么 -L/path 就很重要了!否则会找不到函式库

 

除了连结的函式库之外,您或许已经发现一个奇怪的地方,那就是在我们的 sin.c 当中第一行『 #include <stdio.h> 』,这行说的是要将一些定义数据由 stdio.h 这个档案读入,这包括 printf 的相关设定。这个档案其实是放置在 /usr/include/stdio.h 的!那么万一这个档案并非放置在这里呢?那么我们就可以使用底下的方式来定义出要读取的 include 档案放置的目录:

[guest@test guest]# gcc sin.c -lm -I/usr/include

 -I/path 后面接的路径( Path )就是设定要去搜寻相关的 include 档案的目录啦!不过,同样的,默认值是放置在 /usr/include 底下,除非您的 include 档案放置在其它路径,否则也可以略过这个项目!

 

 

引用:http://blog.csdn.net/dfman1978/article/details/6105421

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fedora上编译运行C文件 的相关文章

随机推荐

  • Flutter图片选择 image_picker(官方)插件使用详解

    Flutter图片选择 image picker 官方 插件使用详解 IOS自测 image picker GitHub最新版本查看 https github com flutter plugins 下滑找到image picker可以看到
  • apipost-一键压测

    apipost新功能可实现一键压测 接口压测实践 使用场景 对指定接口进行性能测试 实现方式 为实现高性能的并发需求 使用自研的压测引擎 可以实现一万以上并发 项目已经开源 github地址 https github com Apipost
  • STM32 GPIO: pull up, pull down, no pull

    gpio 有3种状态 上拉 下拉 不拉 首先 确定GPIO口的输入和输出 当GPIO处于output模式 一般选择no pull 引脚能够正确地输出目标值 当GPIO处于input模式 需要根据默认的输入值来确定配置模式 如果默认输入的值为
  • C语言小游戏——推箱子(一次性版本)

    目录 思路 1 游戏的开始和地图设定 2 地图场景设置和人物的四项移动 3 分析人物的移动 4 判断结束条件 思路 l 分析 编写代码实现 控制游戏角色 在地图上 避开障碍物 将箱子推到目标点 游戏元素 角色 控制移动 地图 游戏场所 空地
  • JavaScript 的初识

    JavaScript 是 Web 的编程语言 是一种轻量级的编程语言 是可插入 HTML 页面的编程代码 插入 HTML 页面后 可由所有的现代浏览器执行 且JavaScript 非常容易学 文章目录 一 认识JavaScript 二 Ja
  • Git基本命令使用

    Git基本命令使用 分支操作 显示所有本地分支 git branch 显示所有远程分支 git branch r 新建一个分支 git branch branch name 切换到指定的分支 git checkout b branch na
  • Spring框架——IOC和AOP以及DI

    一 IOC原理 1 控制反转 IOC 将创建管理对象的工作交给容器来做 在容器初始化 或在某个时间节点 通过反射机制创建好对象 在使用时直接从容器中获取 控制反转 将对象的控制权反过来交给容器管理 依赖注入 DI 将对象依赖写入配置文件 在
  • Python实现基本Socket服务端与客户端通信

    该文章使用 python 实现基本的 socket 服务端与客户端通信 分步详解与完整代码都有 按需所求即可 一 服务端代码 1 引入自带的socket模块 并创建一个socket实例 服务端需要使用 bind 将该实例绑定到指定域名与端口
  • WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT

    ELMO BERT GPT 文章目录 ELMO BERT GPT 摘要 1 Contextualized Word Embedding 2 Embeddings from Language Model ELMO 3 Bidirectiona
  • 入门PyTorch的学习路线指南

    PyTorch是目前最受欢迎的深度学习框架之一 它具有易于使用 灵活性强 支持动态图等优点 因此备受研究者和工程师的青睐 如果你想学习PyTorch 下面是一个入门PyTorch的学习路线 学习基础知识 学习Python编程语言 PyTor
  • GD32F450 通过i2c 总线上写指令,从机mcp3421 没有应答信号ACK

    没有ACK的原因 mcp3421地址配置错了 丝印型号是CB5R 地址应该是001 而不是默认的000 MCP3421 ADC单通道模数转换器 中文规格书下载链接 https bbs elecfans com jishu 2245219 1
  • 内部类全面了解

    格式 public class A类 修饰符 class B类 注意点 1 内部类可以直接访问外部类成员 包括私有 2 外部类要访问内部类成员必须要创建对象根据内部类在类中定义的位置 分为 1 在类的成员位置 成员内部类 2 在类的局部位置
  • thymeleaf 常用标签

    1 spring boot 集成 thymeleaf 在pom xml 文件中添加
  • Unity 3D网页游戏 Demo 展示

    2011 年 网页 3D 这一网游开发新趋势逐渐浮出水面 Unity 作为浏览器及移动设备 3D 引擎领域的佼佼者 在国内开始崭露头角 我们团队也完成了首款 Unity Demo 的第一个版本 Demo 通过角色选择 地图漫游 副本战斗 庄
  • hadoop错误记录

    今天弄了一下hadoop 我好大杂烩啊 没办法 被逼的 记录几个错误 1 Name node is in safe mode 这是因为在分布式文件系统启动的时候 开始的时候会有安全模式 当分布式文件系统处于安全模式的情况下 文件系统中的内容
  • 技术、产业、人才三管齐下,数字人民币渐行渐近

    摘要 产业动态 Roxe与Fairexpay达成战略合作 拓展印度汇款业务 自治区级区块链 桂链 发布启动并全面接入 星火 链网 云南省区块链和数字科技标准化技术委员会获批成立 福建省高校首个产教融合区块链联合实验室揭牌 国网电商公司创新探
  • JS背景网页樱花特效

    js绘制网页樱花飘落背景 放入底部可用 在网上也有很多这样案例 js 放于底部 推荐下面这种写法 当然还有一种 小唯美 1
  • Android的服务Service

    Android学了太久了 都忘了 复习下四大组件之一的Service 介绍 Android的Service是一种在后台执行长时间运行操作的组件 它可以在没有用户界面的情况下执行任务 并且可以与应用程序的其他组件进行通信 Service通常用
  • openwrt python_Openwrt python,openwrt上使用Python

    需要安装libffi python mini python libffi以及python mini需要安装在python之前 wget c http downloads openwrt org cn backfire 10 03 1 brc
  • fedora上编译运行C文件

    include