问题描述
我将lua嵌入到c ++ vs2019解决方案中,它导致将错误链接到基本c库
(__imp_freopen
,__imp_floor
和__imp_strcoll
)。
lua在其自己的项目中作为静态c库进行编译并链接到主项目,但是使用luaL_newstate();
时,我得到freopen(...)
,floor(...)
和{{ 1}}。
我的最佳猜测是此错误来自我的构建系统(premake5),因为当我使用vs2019手动添加项目时,没有链接错误,但是由于我经常在整个操作系统上处理该项目,因此无法正常显示premake很多问题。 我希望对缩小问题范围有任何想法。
lua的预制:
strcmp(...)
解决方案的相关预制件:
project "lua"
kind "StaticLib"
language "C"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"src/**.c","src/**.h","src/lua.hpp"
}
excludes
{
"src/lua.c","src/luac.c"
}
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "on"
lua.hpp仅包含在workspace "solution"
architecture "x86_64"
startproject "test"
configurations
{
"Debug","Release"
}
flags
{
"MultiProcessorCompile"
}
outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
IncludeDir = {}
IncludeDir["GLFW"] = "engine/vendor/GLFW/include"
IncludeDir["Glad"] = "engine/vendor/Glad/include"
IncludeDir["ImGui"] = "engine/vendor/imgui"
IncludeDir["glm"] = "engine/vendor/glm"
IncludeDir["stb_image"] = "engine/vendor/stb_image"
IncludeDir["lua"] = "engine/vendor/lua"
group "dependencies"
include "engine/vendor/GLFW"
include "engine/vendor/Glad"
include "engine/vendor/imgui"
include "engine/vendor/lua"
group ""
project "engine"
location "engine"
kind "StaticLib"
language "C++"
cppdialect "C++17"
staticruntime "on"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
pchheader "pch.h"
pchsource "engine/src/pch.cpp"
files
{
"%{prj.name}/src/**.h","%{prj.name}/src/**.cpp","%{prj.name}/vendor/stb_image/**.h","%{prj.name}/vendor/stb_image/**.cpp","%{prj.name}/vendor/glm/glm/**.hpp","%{prj.name}/vendor/glm/glm/**.inl"
}
defines
{
"_CRT_SECURE_NO_WARNINGS","GLFW_INCLUDE_NONE"
}
includedirs
{
"%{prj.name}/src","%{prj.name}/vendor/spdlog/include","%{IncludeDir.GLFW}","%{IncludeDir.Glad}","%{IncludeDir.ImGui}","%{IncludeDir.glm}","%{IncludeDir.stb_image}","%{IncludeDir.lua}"
}
links
{
"GLFW","Glad","ImGui","opengl32.lib","lua"
}
filter "configurations:Debug"
runtime "Debug"
optimize "off"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "on"
project "test"
location "test"
kind "ConsoleApp"
language "C++"
cppdialect "C++17"
staticruntime "on"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"%{prj.name}/src/**.h","%{prj.name}/*.cpp"
}
includedirs
{
"engine/vendor/spdlog/include","engine/src","engine/vendor","%{IncludeDir.glm}"
}
links
{
"engine"
}
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "on"
的lua_script.cpp中。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)