当前位置:  技术问答>linux和unix

关于stdio.h的函数

    来源: 互联网  发布时间:2015-02-12

    本文导语:  #include  #include  int main(void) {    double pi = M_PI;    double Sqrt_Result;        Sqrt_Result = sqrt(pi);        return 0; } 这是一段很简单的求pi的开方的程序,但在GCC下编译时总不能通过,情况如下: [user@server1 c]$...

#include 
#include 

int main(void)
{
   double pi = M_PI;
   double Sqrt_Result;
   
   Sqrt_Result = sqrt(pi);
   
   return 0;
}

这是一段很简单的求pi的开方的程序,但在GCC下编译时总不能通过,情况如下:
[user@server1 c]$ gcc pisqrt.c
/tmp/ccegunQd.o: In function `main':
/tmp/ccegunQd.o(.text+0x41): undefined reference to `sqrt'
collect2: ld returned 1 exit status

这里有两个疑问:
(我在Redhat8.0的默认环境下进行编译!)
1:sqrt()为什么出错(换成stdio.h中的其他程序也一样),但stdio.h中定义的常量M_PI确可以成功使用?
2:出错信息中的“/tmp/ccegunQd.o”提示是指什么?(源文件放在目录c下,编译也在c下进行)

|
1. 在连接时找不到sqrt函数,因为你没指定库文件
   使用gcc -lm pisqrt.c

2. /tmp/ccegunQd.o是中间的临时文件。
   gcc需要先把.c编译成.o,然后在连接成a.out,
   你没有指定.o存放的位置和名称
   gcc就临时存在/tmp下,并随便给起个唯一的名字。
   gcc执行完后它会删掉/tmp/ccegunQd.o

|
最好用下面的格式编译
gcc -o pisqrt pisqrt.c -lm


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 sync_with_stdio():同标准I/O同步
  • ubuntu在编译时提示 错误:stdio.h没有该文件或目录..怎是怎回事?我没动过stdio.h这些头文件怎没了呢?
  • 新安装的ubuntu的gcc无法找到stdio.h头文件
  • 关于“stdio.h 没有那个文件或目录”的问题
  • 在cygwin中编译c,结果打不开stdio.h,如何解决!
  • [求救]:找不到stdio.h与ctype.h怎么办
  • error:stdio.h:No such file or directory
  • 调查在unix/linux 下用c编程时你们使用c的stdio库 还是C++的标准流库?
  • 请问哪位大侠有jrun stdio3.01的注册码
  • stdio和read/write,缓冲区写满时阻塞的实现机制是什么
  • help,FEDORA13下找不到stdio.h
  • mingw dev stdio(for win) or vc6 在win 下做gtk程序,怎么配置?
  • stdio对比unistd仅仅是多了一层缓存么?
  • 同样的代码,换个系统编译就出事了,/usr/include/bits/stdio2.h:282: undefined reference to `__fread
  • stdio.h:No such file or directory?
  • 找不到stdio_iso.h文件
  • stdio.h:312: error: expected declaration specifiers or


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3