環境。Visual Studio 2019.
我正在開發一個作為共享庫(DLL)的引擎,我制作了一個使用該DLL的示例,以便我可以啟動引擎。在這個階段,我必須將GLFW庫添加到引擎中,因此我將GLFW作為子模塊(git)添加到我的專案中,并將這個庫構建為靜態庫(.lib),靜態運行時間設定為 "On"。所以我把GLFW的一些函式添加到引擎代碼中,比如glfwMakeContextCurrent(),在這一點上,當我構建引擎時,除了glfwInit()之外,許多函式出現了奇怪的鏈接錯誤。
專案視圖:
注意:opengl32.lib已經被添加到聯結器中的輸入引擎中。
如果您有任何想法,請與我分享,我將不勝感激
。編輯
以下是完整的聯結器命令列:
uj5u.com熱心網友回復:
感謝大家的幫助。我得到了一個相對的解決方案,我想與大家分享,以防有人陷入同樣的情況。
簡短的回答:
我在構建GLFW時將其從靜態庫轉換為共享庫,鏈接錯誤就這樣消失了。
長答案
我寫了一個Premake腳本來生成GLFW專案,配置設定為Shared Library,staticruntime為Off[意思是(多執行緒DLL(/MD))為Visual Studio配置中的Runtime Library] 。旁邊有一些包括和定義(看看腳本),我把GLFW庫鏈接到引擎上,我把.dll復制到基于引擎的Sandbox/example應用程式的位置,一切都很好。
這里是腳本的情況:
project "GLFW"
型別 "SharedLib"/span>
語言 "C"/span>
targetname ("glfw3")
targetdir ("bin/" ... outputdir ... "/%{prj.name}")
objdir ("bin-intermediate/" ...outputdir ... "/%{prj.name}")
檔案
{
"include/GLFW/glfw3.h"。
"include/GLFW/glfw3native.h"。
"src/internal.h"。
"src/glfw_config.h"。
"src/mappings.h"。
"src/egl_context.h"。
"src/osmesa_context.h"。
"src/wgl_context.h"。
"src/context.h"。
"src/init.c"。
"src/input.c"。
"src/monitor.c"。
"src/vulkan.c"。
"src/window.c"。
"src/context.c".
}
其中包括 {
"%{prj.name}/src"。
"%{prj.name}/include"。
}
過濾 "system:windows"
buildoptions { "-std=c11"/span>, "-lgdi32"/span> }
系統版本 "最新"/span>
staticruntime "Off"
檔案
{
"src/win32_platform.h"。
"src/win32_joystick.h"。
"src/win32_init.c"。
"src/win32_joystick.c"。
"src/win32_monitor.c"。
"src/win32_time.c"。
"src/win32_thread.c"。
"src/win32_window.c"。
"src/wgl_context.c"。
"src/egl_context.c"。
"src/osmesa_context.c".
}
定義
{
"_GLFW_WIN32"。
"_CRT_SECURE_NO_WARNINGS"。
"WIN32"。
"_WINDOWS"。
"UNICODE"。
"_UNICODE"。
"_GLFW_BUILD_DLL"。
}
鏈接{
"kernel32.lib"。
"user32.lib",
"gdi32.lib"。
"winspool.lib"。
"shell32.lib"。
"ole32.lib"。
"oleaut32.lib"。
"uuid.lib"。
"comdlg32.lib"。
}
后置命令{
("{_COPY} %{cfg.buildtarget.relpath} ..././.../bin/" ...outputdir ... "/Sandbox")
}
filter { "system:windows", "configures:Debug"}.
buildoptions "/MDd"/span>
過濾器 { "system:windows", "configuration:Release"}.
buildoptions "/MD">。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326361.html
標籤:
上一篇:找到第n個斐波那契數列



