【发布时间】:2020-11-26 14:13:14
【问题描述】:
每当我尝试将 GLEW 链接到目标文件时,我都会收到此错误:
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: Buffer.o:Buffer.cpp:(.text+0x1d): undefined reference to `_imp____glewGenBuffers'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: Buffer.o:Buffer.cpp:(.text+0x52): undefined reference to `_imp____glewDeleteBuffers'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: Buffer.o:Buffer.cpp:(.text+0x7c): undefined reference to `_imp____glewBindBuffer'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: Buffer.o:Buffer.cpp:(.text+0xa8): undefined reference to `_imp____glewBindBuffer'
collect2.exe: error: ld returned 1 exit status
Makefile:7: recipe for target 'main' failed
这编译正确:
main: main.cpp Buffer.hpp Buffer.cpp
g++ -o main.exe main.cpp Buffer.cpp -DGLEW_STATIC ${INCLUDE_PATH} ${LIB_PATH} ${LIBS}
这会返回上面显示的错误。
main: main.cpp Buffer.o
g++ -o main.exe main.cpp Buffer.o -DGLEW_STATIC ${INCLUDE_PATH} ${LIB_PATH} ${LIBS}
Buffer.o: Buffer.hpp Buffer.cpp
g++ -c Buffer.cpp ${INCLUDE_PATH}
代码是完全相同的代码,所以我不知道问题是什么。我正在使用 mingw32-make 和 g++ (mingw)。
【问题讨论】:
-
@AlanBirtles 这是我能做到的最低限度
-
我认为关键是它最小但不可重现。
-
@drescherjm 只需获取任何库并将其与使用该库的目标文件链接
标签: c++ compilation linker g++ gnu