使用 Premake5 构建项目不会生成可执行文件或中间体
Building project with Premake5 doesn't generate executables or intermediates
我最近看了这个视频,并决定在我的项目中包含一个预制构建步骤。但是,在看似以相同的方式实现我的.lua文件中的代码(除了名称(之后,premake 不会生成 bin 和 bin-int 目录。奇怪的是,.sln,.vcxproj和.vcxproj.filters文件都是生成的。
我的预制件5.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"
通过运行预制件在命令行上的输出看起来不错:
C:UsersbonnlsourcereposOpenGE>call dependenciespremakepremake5 vs2019
Building configurations...
Running action 'vs2019'...
Done (92ms).
C:UsersbonnlsourcereposOpenGE>PAUSE
Press any key to continue . . .
如果需要任何其他代码或信息,我很乐意添加它。
事实证明,我认为预制将构建我的项目以及生成解决方案和项目文件。从那以后,我构建了这个项目,它就像一个魅力
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 可执行文件C++包括.obj,.lib和.dll吗?
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 使用 Premake5 构建项目不会生成可执行文件或中间体