`
zhcheng
  • 浏览: 164462 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

fedora上编译运行C文件

    博客分类:
  • C
 
阅读更多
#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

分享到:
评论

相关推荐

    在Fedora17上安装arm-linux-gcc交叉编译环境

    在Fedora 17上搭建ARM-Linux-GCC交叉编译环境是一项重要的任务,尤其对于在x86架构上开发针对ARM处理器的应用程序的开发者来说。以下是一个详细的步骤指南: 首先,你需要获取ARM-Linux-GCC交叉编译工具链。在这个...

    基于fedora9的linux驱动程序hello模块编译笔记.doc

    5. **编译模块**:在`hello.c`和Makefile所在的目录中运行`make`命令,会调用内核构建系统的`make`,编译`hello.c`为内核模块`hello.ko`。 6. **加载和卸载模块**:在纯控制台环境下(可通过`init 3`从图形界面切换...

    Linux下用GCC运行C语言源文件的实例

    对于C语言爱好者来说,掌握如何在Linux下使用GCC编译和运行C语言源文件是至关重要的。下面我们将详细探讨这个过程,以及相关的一些知识点。 首先,安装GCC。在大多数Linux发行版中,GCC可能已经预装,如果没有,...

    Fedora8上交叉编译qtopia4移植成功到s3c2410开发板

    交叉编译是在一种架构(如Fedora 8的x86)上编译代码,使其能在另一种架构(如S3C2410的ARM)上运行。在这个过程中,开发者首先安装了主机编译器(GCC 3.4.1),然后安装了交叉编译器(arm-linux-gcc-3.4.1),以...

    linux下编写c源程序并编译运行.pdf

    "Linux 下编写 C 源程序并编译运行" Linux 是一个开源的操作系统,广泛应用于服务器、移动设备、嵌入式系统等领域。作为一个程序员,掌握 Linux 基本操作和编写 C 源程序是非常必要的。本文将指导读者在 Linux 环境...

    fedora 9 在vmware上的文件共享.docx

    在Fedora 9环境下,将虚拟机运行在VMware上时,进行文件共享是一个常见的需求。这有助于在宿主机和虚拟机之间方便地传输数据。本文将详细解释三种在Fedora 9 VMWare环境中实现文件共享的方法。 1. **自定义ISO文件*...

    基于fedora9的hello驱动模块编译教程(源码)

    本教程将详细讲解如何在Fedora 9操作系统上编译一个名为"hello"的简单驱动模块,这为初学者提供了一个很好的实践平台。 首先,我们需要了解Linux内核模块的基本概念。内核模块是可加载到运行中的内核中的代码片段,...

    Fedora下面的time应用案例

    在这个例子中,`gcc`用于编译C源代码,生成可执行文件`WaitTest`,然后`time`命令执行这个程序并提供运行时间报告。 `time`命令会输出三个时间指标: 1. **用户时间**(User Time):程序在用户空间执行所花费的...

    Fedora12下使用crosstool

    本文将详细介绍如何在Fedora12操作系统下使用crosstool工具建立一个ARM交叉编译环境,且无需删除原有的GCC工具链。crosstool是一款用于自动化配置、编译和安装交叉编译器的脚本工具,它可以显著简化交叉编译器的构建...

    在Fedora 14下安装OpenCV

    编译完成后,可以直接运行 facedetect 程序: $ ./facedetect --cascade="/usr/local/share/$OPENCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg 如果安装成功,应该会看到输出一副人脸...

    Fedora Linux gcc g++安装包合集

    在Fedora系统上,GCC和G++对于软件开发人员来说是不可或缺的,因为它们能够将源代码编译成可执行程序。 本压缩包"fedora22_gcc-5.1.1"显然是针对Fedora 22的一个GCC 5.1.1版本的安装包集合。GCC 5.1.1是GCC的5.x...

    ARM-linux(fedora)随笔

    在嵌入式Linux开发环境中,这一点尤为重要,因为开发板上的文件系统可能会有所不同,共享库的位置也可能发生变化。 #### 三、配置方法 ##### 1. 在.bash_profile中永久配置 为了减少重复配置的工作量,可以在用户的...

    Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440

    移植完成后,你可以在Qt Creator中创建项目,通过交叉编译配置进行开发,然后通过USB或网络将编译好的二进制文件传输到Micro2440上运行。同时,记得配置好tslib以支持触摸屏功能,这对于在嵌入式设备上交互至关重要...

    fedora14 安装opencv2.3.1

    接下来需要为 OpenCV 的编译配置创建一个 `release` 文件夹,并在该文件夹中通过 `cmake` 工具来生成 Makefile 文件。 **命令行操作:** 1. **进入 OpenCV 目录:** ```bash cd /home/OpenCV-2.3.1 ``` 2. **...

    fedora15&TQ210开发板QT开发环境搭建

    - 在开发板上运行`ts_calibrate`后,出现找不到文件或目录的错误。这通常是因为环境变量未正确设置,需要检查并更新`TSLIB_TSDEVICE`等环境变量。 完成以上步骤后,QT开发环境的基础部分已经搭建完成,现在可以安装...

    PL/0编译程序C版本

    * 编译和运行环境 * Visual C++6.0,Visual C++.net and Visual C++.net 2003 * WinNT,Win2000,WinXP and Win2003 * 2gcc version 3.3.2 20031022(Red Hat Linux 3.3.2-1) * Redhat Fedora core 1...

    ns2-allinone-2.30在fedora 13下安装问题加解决办法

    通过上述步骤,可以有效地解决在Fedora 13环境下安装和使用ns2-allinone-2.30过程中常见的编译错误和NAM运行错误问题。这些解决方案不仅适用于Fedora 13,也可能适用于其他类似的操作系统环境。希望这些经验分享能...

    seafile客户端交叉编译到windows相关文件

    本文将深入探讨如何在Fedora 28操作系统上对Seafile客户端进行交叉编译,使其能够在Windows系统(如Win7和Win10)中运行。Seafile是一款开源的云存储和文件同步服务,它的客户端支持多种操作系统,包括Linux、...

Global site tag (gtag.js) - Google Analytics