整个项目就是一个游戏引擎。然而,对于这方面,我尝试添加一个使用 SFML 来显示图形的开发工具。我已成功链接 SFML 以使其自行运行。当我尝试将工具中的标头 #include 到解决方案中的另一个项目时,就会出现问题。我收到一条错误消息,指出无法找到 SFML 库中的graphics.hpp。 我正在使用 premake5.lua 文件静态链接 SFML。
任何帮助将不胜感激。
这是预制版的代码段。如果我尝试将 SFML 包含到沙箱项目中,则无法构建 .bat 文件。
project "Sandbox"
location "sandbox"
kind "ConsoleApp"
language "C++"
staticruntime "off"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("build/" .. outputdir .. "/%{prj.name}")
files {
"%{prj.name}/include/**.h",
"%{prj.name}/src/**.cpp",
"vendor/stb_image/stb_image.cpp"
}
includedirs {
"%{prj.name}/include",
"engine/enginecode/",
"engine/enginecode/include/independent",
"engine/precompiled/",
"vendor/glm/",
"vendor/spdlog/include",
"vendor/json/single_include/nlohmann",
"vendor/IMAT3904/include",
"vendor/IMAT3904/include/include/independent",
"vendor/React3D/src"
"vendor/SFML-2.5.1/lib"
}
links {
"Engine",
"React3D",
}
filter "system:windows"
cppdialect "C++17"
systemversion "latest"
defines {
"NG_PLATFORM_WINDOWS"
}
filter "configurations:Debug"
defines {
"NG_DEBUG"
"SFML_STATIC"
}
runtime "Debug"
symbols "On"
libdirs {
"vendor/SFML-2.5.1/lib"
}
links {
"sfml-main",
"sfml-graphics-s-d",
"sfml-system-s-d",
"sfml-window-s-d",
"sfml-audio-s-d",
"opengl32.lib",
"winmm.lib",
"gdi32.lib",
"openal32.lib",
"flac.lib",
"vorbisenc.lib",
"vorbisfile.lib",
"vorbis.lib",
"ogg.lib",
"freetype.lib"
}
debugenvs {"PATH=$PATH;../vendor/SFML-2.5.1/bin;"}
filter "configurations:Release"
defines {
"NG_RELEASE"
"SFML_STATIC"
}
runtime "Release"
optimize "On"
libdirs {
"vendor/SFML-2.5.1/lib"
}
links {
"sfml-main",
"sfml-graphics-s",
"sfml-system-s",
"sfml-window-s",
"sfml-audio-s",
"opengl32.lib",
"winmm.lib",
"gdi32.lib",
"openal32.lib",
"flac.lib",
"vorbisenc.lib",
"vorbisfile.lib",
"vorbis.lib",
"ogg.lib",
"freetype.lib"
}
debugenvs {"PATH=$PATH;../vendor/SFML-2.5.1/bin;"}
项目“分析工具” 位置“分析工具” 种类“ConsoleApp” 语言“C++” 静态运行时“关闭”
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("build/" .. outputdir .. "/%{prj.name}")
files {
"%{prj.name}/include/**.h",
"%{prj.name}/src/**.cpp"
}
includedirs {
"%{prj.name}/include",
"vendor/spdlog/include",
"vendor/stb_image",
"vendor/freetype2/include",
"vendor/glm/",
"vendor/assimp/include",
"vendor/Glad/include",
"vendor/glfw/include",
"vendor/json/single_include/nlohmann",
"vendor/IMAT3904/include",
"vendor/SFML-2.5.1/include"
}
filter "system:windows"
cppdialect "C++17"
systemversion "latest"
filter "configurations:Debug"
runtime "Debug"
symbols "On"
defines "SFML_STATIC"
libdirs {
"vendor/SFML-2.5.1/lib"
}
links {
"sfml-main",
"sfml-graphics-s-d",
"sfml-system-s-d",
"sfml-window-s-d",
"sfml-audio-s-d",
"opengl32.lib",
"winmm.lib",
"gdi32.lib",
"openal32.lib",
"flac.lib",
"vorbisenc.lib",
"vorbisfile.lib",
"vorbis.lib",
"ogg.lib",
"freetype.lib"
}
debugenvs {"PATH=$PATH;../vendor/SFML-2.5.1/bin;"}
filter "configurations:Release"
runtime "Release"
optimize "On"
defines "SFML_STATIC"
libdirs {
"vendor/SFML-2.5.1/lib"
}
links {
"sfml-main",
"sfml-graphics-s",
"sfml-system-s",
"sfml-window-s",
"sfml-audio-s",
"opengl32.lib",
"winmm.lib",
"gdi32.lib",
"openal32.lib",
"flac.lib",
"vorbisenc.lib",
"vorbisfile.lib",
"vorbis.lib",
"ogg.lib",
"freetype.lib"
}
debugenvs {"PATH=$PATH;../vendor/SFML-2.5.1/bin;"}
它确实包含用于分析工具的 SFML,但不包含用于沙箱项目的 SFML。
在您的沙箱中,您将其包含为:
"vendor/SFML-2.5.1/lib"
,可能应该是:"vendor/SFML-2.5.1/include"