【问题标题】:Is it possible to link to the math library from inside the C source code in gcc?是否可以从 gcc 的 C 源代码中链接到数学库?
【发布时间】:2011-02-20 08:25:45
【问题描述】:

当我尝试包含<math.h> 时,我发现我需要使用命令gcc -lm 链接数学库

但我正在寻找另一种“在代码中”链接数学库的方法,它不需要用户使用任何选项进行编译..

gcc -lm 可以在 C 代码中使用 #pragma 或其他东西完成吗?

编辑:我已将 -ml 更改为 -lm

【问题讨论】:

    标签: c gcc include unix


    【解决方案1】:

    为用户(或实际上为开发人员)简化复杂性的常用方法是编写一个 makefile。

    【讨论】:

    • 但是我看不到它如何回答有关编译指示的问题;)
    【解决方案2】:

    首先,它是gcc -lm,没有#pragma 意味着提供链接指令

    【讨论】:

      【解决方案3】:

      不,您需要告诉链接器链接库才能链接库。

      链接器不知道代码,只知道编译的目标文件。它不会看到特定于语言的编译指示。

      【讨论】:

        【解决方案4】:

        你没有说你使用的是哪个 UNIX shell,但如果这只是为了方便,只需编写一个 shell 函数:

        gcm() {
          gcc -lm $*
        }
        

        把它放在你的shell的启动文件中,你就可以编译和链接数学库了:

        gcm mycode.c
        

        【讨论】:

        • 我怀疑这在一般情况下是否有用
        【解决方案5】:

        使用-lm 是唯一的选择。此外,使用#pragma 是微软特有的,而且相当肮脏。想象一下,有一个新的超高效数学库需要 -lsupermath 而不是 -lm - 那么您必须修改代码而不是修改 makefile 或 make 配置文件。

        【讨论】:

          【解决方案6】:

          不,gcc 没有用于链接库的编译指示。您必须使用命令行选项链接到数学库(它是 -lm 而不是 -ml

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-09-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多