前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每周小题-Linux命令,编译链接

每周小题-Linux命令,编译链接

作者头像
编程珠玑
发布2020-02-11 16:43:03
1.3K0
发布2020-02-11 16:43:03
举报
文章被收录于专栏:编程珠玑编程珠玑

来源:公众号【编程珠玑】

作者:守望先生

ID:shouwangxiansheng

代码语言:javascript
复制
//来源:公众号【编程珠玑】
//main.c
#include <stdio.h>
#include <math.h>
int main(void)
{
    int a = 10;
    int b = 4;
    int c = pow(a,b);
    printf("10^4 = %d",c);
    return 0;
}
如何确定pow函数需要包含什么头文件?

还是通过man手册或者网上查询

代码语言:javascript
复制
NAME
       pow, powf, powl - power functions

SYNOPSIS
       #include <math.h>

       double pow(double x, double y);
       float powf(float x, float y);
       long double powl(long double x, long double y);

       Link with -lm.
如何知道使用某个函数需要链接什么库?

还是通过man手册或者网上查询。 参考《Linux常用命令-man》。

以上代码该如何编译?
代码语言:javascript
复制
$ gcc -o main main.c -lm
以上代码使用该如何编译?
代码语言:javascript
复制
$ gcc -o main main.c -lm
以下方式能编译过吗?为什么?
代码语言:javascript
复制
$ gcc -lm -o main main.c

-lm在前,里面将会被认为没有符号被需要。参考《如何自制静态库

如何查看程序链接了哪些动态库?
代码语言:javascript
复制
$ ldd main
    linux-vdso.so.1 =>  (0x00007ffc97fdf000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc1aadc1000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc1aa9f7000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc1ab0ca000)

参考《Linux常用命令-开发调试篇》。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程珠玑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何确定pow函数需要包含什么头文件?
  • 如何知道使用某个函数需要链接什么库?
  • 以上代码该如何编译?
  • 以上代码使用该如何编译?
  • 以下方式能编译过吗?为什么?
  • 如何查看程序链接了哪些动态库?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档