问题:

今天在linux环境下串行计算Pi值的时候,出现了这样的问题:

dblab@dblab-virtual-machine:~/MpiCode/test2$ gcc SerialCount.c -o serialcount.o/tmp/cctJ4RwL.o:在函数‘main’中:
SerialCount.c:(.text+0x81):对‘pow’未定义的引用
SerialCount.c:(.text+0xab):对‘pow’未定义的引用
collect2: error: ld returned 1 exit status

源代码:

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#define n 1000000000
void main()
{
    int i,count=0;
    double x,y,pi;
    srand((int)time(NULL));
    for(i=0;i<n;i++)
    {
        x=(double)(1.0*rand()/RAND_MAX); 
		y=(double)(1.0*rand()/RAND_MAX);
        if(pow(x,2)+pow(y,2)<=1)
        {
        
            count+=1;
            
        }
    }
    pi=4.0*count/n;
    printf("%f",pi);
}

解决方法:

在linux环境下编译时,需要链接数学库,参考解决方式:
在编译语句后面加一个 -lm

gcc SerialCount.c -o serialcount.o -lm

编译成功

GitHub 加速计划 / li / linux-dash
10
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐