使用 Premake5 构建项目未生成可执行文件或中间文件

我最近观看了 这个 视频并决定在我的项目中添加一个 premake 构建步骤。然而,尽管代码看起来完全相同(除了名称),premake 仍然没有生成 bin 和 bin-int 目录。奇怪的是,.sln、.vcxproj 和 .vcxproj.filters 文件都被生成了。

我的 premake5.lua 文件:

workspace "OpenGE"
    architecture "x64"
    startproject "Sandbox"

    configurations
    {
        "Debug",
        "Release",
        "Dist"
    }

outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"

project "OpenGE"
    location "OpenGE"

    kind "SharedLib"
    language "C++"

    targetdir ("bin/" .. outputdir .. "/%{prj.name}")
    objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

    files
    {
        "%{prj.name}/src/**.h",
        "%{prj.name}/src/**.cpp"
    }

    filter "system:windows"
        cppdialect "C++17"
        staticruntime "On"
        systemversion "latest"

        defines
        {
            "GE_DLL_BUILD"
        }

        postbuildcommands
        {
            "{COPY} %{cfg.buildtarget.relpath} ../bin/" .. outputdir .. "/Sandbox"
        }

    filter "configurations:Debug"
        defines "GE_DEBUG"
        runtime "Debug"
        symbols "On"

    filter "configurations:Release"
        defines "GE_RELEASE"
        runtime "Release"
        optimize "On"

    filter "configurations:Dist"
        defines "GE_DIST"
        runtime "Release"
        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
    {
        "OpenGE/src"
    }

    links
    {
        "OpenGE"
    }

    filter "system:windows"
        cppdialect "C++17"
        staticruntime "On"
        systemversion "latest"

    filter "configurations:Debug"
        defines "GE_DEBUG"
        runtime "Debug"
        symbols "On"

    filter "configurations:Release"
        defines "GE_RELEASE"
        runtime "Release"
        optimize "On"

    filter "configurations:Dist"
        defines "GE_DIST"
        runtime "Release"
        optimize "On"

在运行 premake 时,命令行的输出看起来很正常:

C:\Users\bonnl\source\repos\OpenGE>call dependencies\premake\premake5 vs2019
Building configurations...
Running action 'vs2019'...
Done (92ms).

C:\Users\bonnl\source\repos\OpenGE>PAUSE
Press any key to continue . . .

如果需要任何额外的代码或信息,我很乐意补充。

点赞
用户10835645
用户10835645

原文:

Turns out I thought that premake will build my project as well as generate the solution and project files. I have since built the project and it works like a charm

翻译:

原来我以为 premake 不仅会生成解决方案和项目文件,而且还会构建我的项目。但是我现在已经构建了项目,并且它效果很好。

2019-12-22 09:27:41