【发布时间】:2018-11-29 18:47:21
【问题描述】:
为什么编译器有时不给出错误的行号?该“未定义引用”的用例在哪里。我已经将所有内容都包含在我自己编写的头文件中,因此它需要给出一个特定的行号。它不是封闭源代码。我是否无意中更改了编译器的某些设置,还是另一件事是另一件事?
D:\Projects\DanceOfPixels\GLEW>gcc main.c glad.c -IC:\mingw_dev_lib\include\SDL2 -LC:\mingw_dev_lib\lib -lmingw32 -lopengl32 -lSDL2main -lSDL2 -lSDL2_image -o main.exe -ansi -std=c89 -pedantic -w C:\Users\user\AppData\Local\Temp\ccMooHZm.o:main.c:(.text+0x126ce): undefined reference to `drawImagePartScaledHW' collect2.exe:错误:ld 返回 1 个退出状态
编辑:我已经解决了这个问题。我包含了两个不同版本的 draw.h,一个来自软件渲染器,另一个来自 OpenGL 渲染器。因为他们使用相同的
#ifndef DRAW_H
#define DRAW_H
...
#endif
两个文件的结构;编译器不包括第二个。将 DRAW_H 更改为 DRAW_HW 后,我设法编译并运行了应用程序。
【问题讨论】:
-
你应该考虑用
gcc -Wall -g编译all你的代码
标签: c compiler-errors mingw undefined-reference