我有一个项目,我一直在OS X编码,我现在正试图在Windows上构建。我已经设置了MinGW,创建了一个makefile,并且在完成所有编译之后,所有编译都会编译,但是当它到达链接器步骤时,会出现大量错误:
SourceFile.cpp:(.text+0x1809): undefined reference to 'glEnable@4'
链接器命令,省略所有source.o名称非常简单:
g++ -lglu32 -lopengl32
我也尝试过切换链接顺序,并且包含.a文件的完整路径,所有都给了我相同的结果。在编译器步骤中使用_STDCALL_SUPPORTED和_M_IX86宏没有任何区别。
如果它是相关的,我正在使用GLee,我正在直接构建到我的程序中(虽然我也尝试了glew,并得到了相同的结果)。
任何帮助都将不胜感激。
答案 0 :(得分:7)
解决方案非常简单,原因我并不完全理解-lglu32 -lopengl32
必须位于.o文件列表的右侧而不是命令中的左侧。
答案 1 :(得分:1)
原因很简单。事物链接,对于具有以下顺序的东西的链接行: A B C D
B解析A中的外部,C解析A和B中的外部,依此类推。如果D中有外部需要由A解决,你需要在D之后包括A ...哪个IIRC,你可以通过再次添加A来逃避......
A B C D A