【发布时间】:2017-10-31 20:42:50
【问题描述】:
我正在使用 Linux Mint 发行版,并用 C 编写程序。但是,我在编译部分遇到了问题。具体来说,math.h 函数似乎都不起作用(如 sqrt() 或 pow())。
我知道,如果我通过终端进行编译,我必须自己通过在命令末尾添加 -lm 部分来链接它。但是有没有办法通过 Geany 做到这一点?还是我必须手动完成?
【问题讨论】:
我正在使用 Linux Mint 发行版,并用 C 编写程序。但是,我在编译部分遇到了问题。具体来说,math.h 函数似乎都不起作用(如 sqrt() 或 pow())。
我知道,如果我通过终端进行编译,我必须自己通过在命令末尾添加 -lm 部分来链接它。但是有没有办法通过 Geany 做到这一点?还是我必须手动完成?
【问题讨论】:
在 geany 'build' 菜单项下是选择:Set Build Commands
点击build 和Set Build Commands 后,Set Build Commands 窗口打开。
在第一列下面是label,在Compile下面Compile右侧是一个文本框,您可以在其中键入编译命令。
在我的系统上,编译文本框的内容是:
gcc -ggdb -Wall -Wextra -Wconversion -std=gnu11 -pedantic -Wmissing-prototypes -c "%f" -I.
下一行标记为Build,Build 右侧是一个文本框,您可以在其中键入链接命令。
在我的系统上,构建文本框的内容是:
gcc -ggdb -Wall -Wextra -Wconversion -std=gnu11 -pedantic -o "%e" "%f" -lpthread -lm
(实际内容会因特殊需要而有所不同)
注意,Build 文本框的末尾是要包含的库项目。在这些库中,有 libm.so(它是在没有 lib 和 so 的情况下编写的。)I.E. -lm
这就是编译和链接“许多/大多数”程序所需的全部内容。
注意:参数-ggdb是为了让编译和链接步骤包含gdb调试器的所有调试信息
【讨论】: