Я сейчас пытаюсь выучить C ++ и подумал, что заняться магией OpenGL было бы неплохо.Я видел учебник по Premake5 и следовал за ним, за исключением того, что сам пытался связать библиотеку (GLFW).При создании файлов проекта для Visual Studio 2017 указанная мной библиотека каким-то образом неправильно связывается с проектом.Я получаю множество ошибок LINK, таких как:
glfw3.lib (monitor.c.obj): ошибка LNK2019: Verweis auf nicht aufgelöstes externes Символ "__imp__strdup" в Функциях "_glfwAllocMonitor".
glfw3.lib (win32_window.c.obj): ошибка LNK2001: Nicht aufgelöstes externes Символ "__imp__strdup".
...
Вот какмой файл premake5.lua выглядит так:
workspace "MojoEngine"
architecture "x64"
configurations
{
"Debug",
"Release",
"Dist"
}
outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
project "MojoEngine"
location "MojoEngine"
kind "SharedLib"
language "C++"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
librarydir = "%{prj.name}/libraries/"
files
{
"%{prj.name}/src/**.h",
"%{prj.name}/src/**.cpp"
}
includedirs
{
librarydir .. "GLFW/include",
"%{prj.name}/vendor/spdlog/include"
}
libdirs
{
librarydir .. "GLFW/lib"
}
links
{
"glfw3",
"glfw3dll"
}
filter "system:windows"
cppdialect "C++17"
staticruntime "On"
systemversion "latest"
defines
{
"ME_PLATFORM_WINDOWS",
"ME_BUILD_DLL"
}
postbuildcommands
{
("{COPY} %{cfg.buildtarget.relpath} ../bin/" .. outputdir ..
"/Sandbox"),
("{COPY} %{prj.name}/lib/GLFW/glfw3.dll ../bin/" .. outputdir ..
"/Sandbox")
}
filter "configurations:Debug"
defines "ME_DEBUG"
symbols "On"
filter "configurations:Release"
defines "ME_RELEASE"
optimize "On"
filter "configurations:Dist"
defines "ME_DIST"
optimize "On"
project "Sandbox"
location "Sandbox"
kind "ConsoleApp"
language "C++"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"%{prj.name}/src/**.h",
"%{prj.name}/src/**.cpp"
}
includedirs
{
"MojoEngine/vendor/spdlog/include",
"MojoEngine/src"
}
links
{
"MojoEngine"
}
filter "system:windows"
cppdialect "C++17"
staticruntime "On"
systemversion "latest"
defines
{
"ME_PLATFORM_WINDOWS",
}
filter "configurations:Debug"
defines "ME_DEBUG"
symbols "On"
filter "configurations:Release"
defines "ME_RELEASE"
optimize "On"
filter "configurations:Dist"
defines "ME_DIST"
optimize "On"