[英]Runtime link error: The procedure entry point glewInit@0 could not be located
我剛開始在MinGW的Windows上使用GLEW。 我可以成功編譯程序( glew.h
和libglew.a
在MinGW中的適當位置),但執行我的程序會拋出上述錯誤。 glew32.dll
與可執行文件存在於同一目錄中,我發現並嘗試了各種解決方案來解決我的問題。 但是,我的問題似乎與其他人不同 - 錯誤消息抱怨glewInit
在可執行文件本身中找不到,而不是glew32.dll
。 我還沒有在Google上找到任何相關信息。
這是錯誤:
正如您所看到的,它不是抱怨無法在DLL中找到glew方法, 而是在程序文件本身中 。 我覺得我錯誤地鏈接了可執行文件,但是我沒有修復這種錯誤的經驗。
這是我的Makefile:
EXEC = test1.exe
SRC_FILES = test1.cpp wavefront.cpp
CXX = g++
CC = $(CXX)
DEBUG_LEVEL = -g
EXTRA_CCFLAGS = -Wall
CXXFLAGS = $(DEBUG_LEVEL) $(EXTRA_CCFLAGS)
CCFLAGS = $(CXXFLAGS)
CPPFLAGS = -I.
LDFLAGS = -L"/cygdrive/c/MinGW/lib"
LDLIBS = -lsfml-graphics -lsfml-window -lsfml-system -lopengl32 -lglu32 -lglew32
O_FILES = $(SRC_FILES:.cpp=.o)
all: .FORCE
.FORCE: compile link
compile:
$(CXX) -c $(SRC_FILES)
link:
$(CXX) $(O_FILES) -o $(EXEC) $(LDFLAGS) $(LDLIBS)
clean:
$(RM) $(O_FILES) *.exe *.rpo
標題和圖表中的錯誤完全不同。 標題中的第一個錯誤是裝飾的DLL導出名稱,第二個錯誤是__stdcall
函數。 無論出於何種原因,導入存根似乎試圖從您的應用程序而不是DLL中解析函數地址。
在構建DLL或dllimport
鏈接時,您可能沒有正確定義dllexport
行為? GLEW使用預處理器定義: GLEW_BUILD
用於此目的。
無論如何,使用靜態鏈接glew庫肯定會解決這個問題,雖然我不能說它為什么會發生這種情況。
鏈接glew32s
並將-DGLEW_STATIC
添加到Makefile。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.