Внедрение LUA в C ++, но неразрешенные внешние внешниеC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Внедрение LUA в C ++, но неразрешенные внешние внешние

Сообщение Anonymous »

Я внедряю LUA в решение C ++ VS2019, и это приводит к связыванию ошибок с базовыми библиотеками C
(__imp_freopen , __imp_floor и __imp_strcoll ).
lua компилируется как статическая библиотека C в собственном проекте и связан с основным проектом, но при использовании Lual_newstate (); < /code> я получаю неразрешенные внешние символы для freopen (...) , floor (...) и strcmp (...) .
Мое лучшее предполагает, что эта ошибка исходит из моей системы сборки (Premake5), как и когда я вручную добавляю проект с использованием VS2019, нет ошибок связывания, но поскольку я часто работаю над этим проектом в разных операционных системах, не имея должным образом, чтобы получить предварительную работу. Чтобы сузить проблему.

Код: Выделить всё

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"

< /code>
Соответствующая премия за решение: < /p>
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}/src/**.cpp",
"%{prj.name}/*.cpp"
}

includedirs
{
"engine/vendor/spdlog/include",
"engine/src",
"engine/vendor",
"%{IncludeDir.GLFW}",
"%{IncludeDir.Glad}",
"%{IncludeDir.ImGui}",
"%{IncludeDir.glm}"
}

links
{
"engine"
}

filter "configurations:Debug"
runtime "Debug"
symbols "on"

filter "configurations:Release"
runtime "Release"
optimize "on"

lua.hpp включен только в lua_script.cpp of class lua_script {...};

Подробнее здесь: https://stackoverflow.com/questions/635 ... open-strco
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»