精华内容
下载资源
问答
  • 当在ubuntu使用math库

    千次阅读 2011-11-01 20:00:54
    当在ubuntu使用math库时出错 使用gcc test.c -lm -o test编译 -lm与-o顺序不能调换
    当在ubuntu使用math库时出错 使用gcc test.c -lm -o test编译 -lm与-o顺序不能调换
    展开全文
  • 在编译一个因为使用了pow()函数而调用了math.h的C源代码时,报错: 编译命令如下:gcc chapterfourtwo.c -o chapterfourtwo.o 编译后报错: /tmp/cc3OVwjO.o: In function `main': chapterfourtwo.c:(.text...

    在编译一个因为使用了pow()函数而调用了math.h库的C源代码时,报错:

           编译命令如下:gcc chapterfourtwo.c -o chapterfourtwo.o

           编译后报错:

               /tmp/cc3OVwjO.o: In function `main':
               chapterfourtwo.c:(.text+0xa6): undefined reference to `pow'
               chapterfourtwo.c:(.text+0xed): undefined reference to `pow'
               collect2: error: ld returned 1 exit status

    改进方案:gcc chapterfourtwo.c -o chapterfourtwo.o -lm

    编译成功

    原因如下:

          使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。本书用到的大部分库函数(例如printf)位于libc.so库文件中,使用libc.so中的库函数在编译时不需要加-lc选项,当然加了也不算错,因为这个选项是gcc的默认选项。

           C标准主要由两部分组成,一部分描述C的语法,另一部分描述C标准库。C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型 声明和宏定义。要在一个平台上支持C语言,不仅要实现C编译器,还要实现C标准库,这样的实现才算符合C标准。不符合C标准的实现也是存在的,例如很多单 片机的C语言开发工具中只有C编译器而没有完整的C标准库。

           在Linux平台上最广泛使用的C函数库是glibc,其中包括C标准库的实现。几乎所有C程序都要调用glibc的库函数,所以glibc是Linux平台C程序运行的基础。glibc提供一组头文件和一组库文件,最基本、最常用的C标准库函数和系统函数在libc.so库文件中,几乎所有C程序的运行都依赖于libc.so,有些做数学计算的C程序依赖于libm.so,以后我们还会看到多线程的C程序依赖于libpthread.so。以后我说libc时专指libc.so这个库文件,而说glibc时指的是glibc提供的所有库文件。

    glibc并不是Linux平台唯一的基础C函数库,也有人在开发别的C函数库,比如适用于嵌入式系统的uClibc。

    参考:

    1.Linux环境下c语言编程使用pow函数 编译时要加 -lm

    https://blog.csdn.net/li_641233642/article/details/95918765

    2.gcc - lm的含义

    https://blog.csdn.net/u013176681/article/details/18272879

    展开全文
  • Ubuntu添加math.h头文件编译的问题

    千次阅读 2018-03-03 19:00:49
    math.h> int main(void) { double amount; double principal = 1000.0; double rate = .02; int year; printf("%4s%21s\n","Year","Amount on deposit"); for(y...
    #include <stdio.h>
    #include <math.h>
    
    int main(void)
    {
    	double amount;
    	double principal = 1000.0;
    	double rate = .02;
    	int year;
    
    	printf("%4s%21s\n","Year","Amount on deposit");
    	
    	for(year = 1;year <= 10;year++)
    	{
    		amount = principal * pow(1.0+rate,year);	
    		printf("%4d%21.2f\n",year,amount);	
    	}
    
    	return 0;	
    }

    编译程序:gcc name.c -o name 

    编译出错结果:undefined reference to `pow'

    出错结果显示main函数里面使用的pow函数是未被定义的,即找不到math.h这个库。


    解决方法:gcc name.c -o name -lm

     

    -lm说明:

    -l参数和-L参数

    -l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了

    好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件)

     

    参考:

    http://bbs.csdn.net/topics/330105678/

    http://blog.csdn.net/zhouzhouzf/article/details/15341527

    http://blog.csdn.net/u011192270/article/details/45080293



    展开全文
  • ubuntumath.h调用

    千次阅读 2013-11-11 18:05:46
    今天用了一下math中的pow函数 最开始的我以为程序写的用错误就改写了一个最简单的C程序 #include #include int main() { double a,b; double area; double root; printf("please input 2 numbers:\n"); ...

    今天用了一下math中的pow函数

    最开始的我以为程序写的用错误就改写了一个最简单的C程序

    #include <stdio.h>
    #include <math.h>
    int main()
    {
    	double a,b;
    	double area;
    	double root;
    	printf("please input 2 numbers:\n");
    	scanf("%lf%lf",&a,&b);
    	area = a*b;
    	root = pow(area,1.0/3);
    	printf("area = %lf\n",area);
    	printf("root = %lf\n",root);
    	return 0;
    }

    可是发现编译的时候就是通过不了,最后从网上找了一下,发现原来

    shell的代码需要这么写才可以编译

    gcc -o 3.out 3.c -lm
    

    我不太了解为啥要加上-lm有大师可以指点一二

    展开全文
  • 记录程序人生 ...https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library.html tar -zxvf l_mkl_2019.0.117.tgz //解压文件 2 . 安装MKL包 cd l_mkl_2019.0.117 ./install.sh
  • ubuntu下安装 boost

    2019-09-09 09:49:43
    1. 安装依赖 sudo apt-get install mpi-default-dev  sudo apt-get install libicu-dev  sudo apt-get install python-dev  sudo apt-get install libbz2-dev  sudo apt-get update 2. 下载boost ht...
  • ubuntumath.h头文件的编译问题

    千次阅读 2017-12-27 13:47:08
    1、ubuntu 16.04 2、Vim 7.4 问题: 1、调用math.h头文件中的函数,直接按如下编译会报错。 // gcc test.c //// /tmp/ccJKFWzl.o: In function `main': 1.c:(.text+0x45): undefined reference to `sin' ...
  • Ubuntu中一般自带python,实验系统版本为ubuntu kylin 17.10,自带python2.7和python3.6两个版本,查看方法如下:进入客户端,输入:python --version 或者 python3 --version。进入python3环境需要输入:python31. ...
  • g++ main.cpp -o main -lm,编译main.cpp,但main.cpp用到了这个数学(math),所以要把main.cpp和数学链接到一起。 后续如果安装第三方,编译器找不到的话,就可以用link来链接第三方。 using namespace std,...
  • 今天在Ubuntu下编译函数(函数中用到了"math.h"),编译时出现下面问题 其解决方法是:只需要在.c后加上 -lm即可。   其原因是因为Ubuntu下的数学函数通常在lib目录下面(即libm.so库函数),-lm就告诉了编译器,...
  • 前提ubuntu可以联网,执行如下命令 apt-cache search boost sudo apt-get install libboost-all-dev 安装之后,文件所在目录如下 /usr/lib/x86_64-linux-gnu 其中包括如下boost相关 libboost_atomic.a...
  • 一、下载 1、下载地址:https://software.intel.com/en-us/mkl/choose-download 2、点击红框: ... ...4、填写相关信息后,会发送一封邮件,邮件内包含下载地址 ...选择配置,这里直接选择默认就...
  • 自己在Ubuntu下练习C程序时,用到了库函数math.h,虽然在源程序中已添加头文件“math.h”,但仍提示所用函数未定义,原本以为是程序出错了,找了好久,这是怎么回事呢? 后来上网查了下,发现是Linux系统的原因,在...
  • BC Math

    2021-04-27 04:56:18
    reduced by a specified modulus bcscale — 设置所有bc数学函数的默认小数点保留位数 bcsqrt — 任意精度数字的二次方根 bcsub — 2个任意精度数字的减法 ~~~ php `BC`高精确度函数包含了: 相加,比较,相除,...
  • ubuntu18.04安装mrpt

    2021-07-30 13:51:02
    List item ubuntu18.04安装mrpt 提示:文章写完后,目录可以...1.引入 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warni.
  • 出现该问题是因为在Linux中,sin,sqrt等函数是在libm.so文件中,并非在math.h中。 解决办法:在Ubuntu的gcc编译环境下,直接使用lm参数即可,例如gcc -o Gen Gen.c -lm 在Eclipse的集成开发环境中,可以在设置...
  • 在eclipse cdt 编写C代码时,如果使用函数,要引用math.h数学函数: #include <math.h> 即使如此,仍然无法编译,此时会提示你引用的数学函数未定义,比如,我使用了pow函数,此时编译,会提示: 对‘powf...
  • Ubuntu 下安装Eigen有两种方式,一种是“apt-get”方式,一种是源码安装方式,我们分别试一下: 1.apt-get安装预编译runtime 终端窗口,输入: sudo apt-get install libeigen3-dev 测试用例: #include ...
  • ubuntu18.04运行gazebo9报错 ...ignition-math库太老了,需要更新 运行命令: sudo apt upgrade libignition-math2 参考: Symbol lookup error (both instalation methods) gazebo9 Symbol lookup error ...
  • C语言math类别函数的原型及使用

    千次阅读 2019-04-30 09:43:38
    注:以下的有关函数及头文件参考了网上资料 #include <stdlib.h> ...如上图所示:在Ubuntu中通过 函数名字> 的命令来获取相应函数的信息,比如包含的头文件,函数的形参以及函数作用等内容。
  • linux中c++函数 文件目录 c++风格2018-12-07tarena@ubuntu:~/cplus/day01$ cd /tarena@ubuntu:/$ cd usr/include/c++tarena@ubuntu:/usr/include/c++$ ls4.6 4.6.3tarena@ubuntu:/usr/include/c++$ cd 4.6.3...
  • 以前都是在VC或者VS中编写c语言程序,今天尝试在Ubuntu下试着编写了一个简单的画正弦函数的程序,用到了头文件math.h,但是编译的时候报错了: 经查资料后才知道,数学函数位于libm.so文件中(通常在/lib目录下)...
  • Ubuntu 下 libgps 的使用

    千次阅读 2019-04-30 08:55:16
    简介 一般 GPS 接收器会遵循美国国家海洋电子...那我们要在 Ubuntu 下获取 GPS 接收器的数据,一种方法就是使用 libgps 。 准确来说 libgps(man libgps)是一个与 GPS 守护进程进行通信的 C 。包含打开、收...
  • ubuntu18.04安装PCL

    2021-10-28 16:19:48
    目录 一、安装依赖 二、下载 三、编译 四、安装PCL 五、安装可视化依赖 六、安装依赖 七、验证 八、卸载(这一步暂未验证) 附:问题记录 一、安装依赖 sudo apt-get update sudo apt-get install git build-...
  • 环境Ubuntu 16 .04 nano pi neo 2 工具链gcc-linaro-aarch64.tar.xz 1.ubuntu 16.04 编译x264 x264-snapshot-20120101-2245.tar.bz2 tar xf x264-snapshot-20120101-2245.tar.bz2 cd x264-snapshot-201201
  • Ubuntu10.10下的中文字体有点少,将Windows的字库中一些常用的字体安装到Ubuntu中来,方便文档处理。安装和设置过程如下:运行环境 | EnviromentUbuntu 10.10 (经测试,Redhat 5.x 和 CentOS 5.x也可以用同样的方法...
  • ubuntu20.04自带的那个是可以用的 但是 直接 apt install gambas3是不行的 需要 sudo apt-get -y install gambas3 gambas3-gb-form-print gambas3-gb-gtk-opengl gambas3-gb-gtk3 gambas3-gb-gui-opengl gambas3-...
  • 最重要的是,与大多数其他软件不同,数学模拟器是应用程序而不是Java。 因此,不需要用户具有任何计算机背景。 Math Simulator的一个独特功能是它允许您保存查询以供以后参考。 因此,您可以保存问题及其结果。
  • 在Linux系统下,C源文件若调用了math库里的函数,则编译时要加上-lm(是字母l,不是数字1),表示链接到math库。 我的源文件test.c 使用以下命令 就OK啦! gcc test.c -o test -lm

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,410
精华内容 1,764
关键字:

math库ubuntu