linux下用gcc编译使用了math库函数的程序出错的解决方法
2007-09-09 10:53
1096 查看
症状:
在c程序中用到math库函数时,编译成obj后,再生成执行文件时,会遇到类似下面的错误:
/tmp/ccalvMPY.o: In function `main':
/tmp/ccalvMPY.o(.text+0x40): undefined reference to `pow'
原因:
因为linux中, pow 函数定义在 libm.so中,
不像一般DevC++或TC是放在C语言的/lib下,
所以, C无法在连接时, 找到相对应的库来连接.
解决方法:
编译器有一些比较通用的参数,其中的-l用来标识要链接的库信息:
-lm 表示需要链接数学库libm.a或libm.so或libm.sl
使用如下编译命令告诉程序数学库的位置即可
或
gcc filename.c -lm -L/lib -L/usr/lib
在c程序中用到math库函数时,编译成obj后,再生成执行文件时,会遇到类似下面的错误:
/tmp/ccalvMPY.o: In function `main':
/tmp/ccalvMPY.o(.text+0x40): undefined reference to `pow'
原因:
因为linux中, pow 函数定义在 libm.so中,
不像一般DevC++或TC是放在C语言的/lib下,
所以, C无法在连接时, 找到相对应的库来连接.
解决方法:
编译器有一些比较通用的参数,其中的-l用来标识要链接的库信息:
-lm 表示需要链接数学库libm.a或libm.so或libm.sl
使用如下编译命令告诉程序数学库的位置即可
gcc filename.c -lm |
gcc filename.c -lm -L/lib -L/usr/lib
相关文章推荐
- linux下用gcc编译使用了math库函数的程序出错的解决方法
- linux下用gcc编译使用了math库函数的程序出错的解决方法
- Linux下使用gcc编译程序找不到库的分析和解决方法
- Linux下使用gcc编译程序找不到库的分析和解决方法
- Linux下编程实用方法-编译源代码出错解决
- 在Linux下如何使用GCC编译程序、简单生成 静态库及动态库
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- IntelliJ IDEA 使用javac编译程序出现“非法字符: \65533 \0”解决方法
- C#使用Process.Start启动程序出错“Unknown error (0xffffffff)”的解决方法
- 【ndk】直接使用ndk提供的arm-linux-androideabi-gcc编译android可执行程序
- linux下使用gcc编译运行C/C++程序
- arm-linux-gcc-4.4.3交叉编译google的protobuf。以及使用方法
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
- Android 运行 C/C++程序 (使用 arm-linux-gcc 交叉编译环境)
- VIM+qmake编译示例程序HelloQt出错问题的解决(文件名一定要使用.cpp,否则就会默认使用gcc编译,当然通不过)
- Debian x64 编译 32位程序出错的一些解决方法
- linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法
- linux下编译C++程序出现错误 “*** stack smashing detected ***, eclipse解决方法
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- Debian x64 编译 32位程序出错的一些解决方法