簡體   English   中英

運行時鏈接錯誤:無法找到過程入口點glewInit @ 0

[英]Runtime link error: The procedure entry point glewInit@0 could not be located

我剛開始在MinGW的Windows上使用GLEW。 我可以成功編譯程序( glew.hlibglew.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM