c - GCC 链接器问题与 -lm 标志

标签 c gcc linker makefile

我在使用 GCC 链接器时遇到问题,特别是在使用 -lm 标志时,因为我正在使用 math.h 中的一些函数。我收到以下错误:

main.c:(.text+0x8e5): undefined reference to `floor'

main.c:(.text+0x901): undefined reference to `ceil'

这是我的 makefile 的相关部分:

myprogram: main.o
    gcc -Wall -pedantic -o myprogram main.o

main.o: main.c foo.h bar.h
    gcc -Wall -pedantic -lm main.c

可能我忽略了一些愚蠢的事情,但我绝对不是 makefile 方面的专家。

最佳答案

此外,库规范必须位于引用它们的对象之后(参见 Linker flags in wrong place)。

关于c - GCC 链接器问题与 -lm 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4964786/

相关文章:

c - 在 C 中向数组写入/读取值

c++ - WM_LBUTTONDOWN、WM_COMMAND 和 WM_CLOSE 等 Windows 消息在 win32 C/C++ API 中定义在哪里?

c++ - Linux 上的 GMP(MPIR) 链接器错误

swift - 声明框架中结构的简单协议(protocol)一致性

linux - 如何打印 ld(linker) 搜索路径

c++ - 将数组映射回现有的特征矩阵

c - 访问 libnetlink.h

windows - 是否可以在没有 Cygwin 或 MinGW 的情况下使用 GCC?

C++ 跨平台 MP3 解码器?

c - 如何使用 SDL2 将 C 中的窗口创建和绘图函数分开?