[IDE]VSCode+Premake5打造(c++)跨平台开发调试工具(2): VSCode task测试

本文介绍如何在VSCode中配置Premake5以管理游戏项目。覆盖了环境搭建、目录结构设置及tasks.json文件的详细配置过程,适用于Windows与Mac平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不想看废话的话,直接上github:https://github.com/zhangping312/VSCode-Premake5-Example

    环境搭建好了,是时候开始测试了,先在Windows上创建一个文件夹VSCode-Premake5-Example, 在VSCode-Premake5-Example创建Game/SFML/Souce目录。先来介绍下目录结构,Game是工程目录,SFML是项目目录, Source是代码目录。

    在Game目录下, 输入cmd打开cmd窗口,或者shift+鼠标右键选择Open PowerShell window here(Win10),输入code .打开。也可以先打开VSCode再选择目录。建议使用命令行的方式打开,后面编译VS2019工程需要命令行来实现。

    在敲代码之前,先得熟悉一些tasks,如果在官网学习了,可以跳过这些废话,直接看tasks.json文件,如果看得懂,请跳到下一篇。
    在执行任务之前,需要先创建tasks.json文件,可以手动创建,但新手估计不熟悉目录结构,有可能会出问题。避免这种情况,可以在Terminal(终端)按钮下选择Run Task...(执行任务),也可以通过快捷键(Windows快捷键Ctrl + Shift + P, Mac快捷键Command + Shift + P),在弹出的窗口上选择Tasks: Run Task。

    会弹出如下窗口,点击

    会弹出如下窗口,继续点击

    会弹出如下窗口,这次有选择了,选择Others,其实随便选都可以,反正都是要改tasks.json文件的

    好了,在左侧窗口上看到新创建的tasks.json文件了。

    截图中的tasks.json内容我是随便选的,现在改成如下:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "First task",  //任务名称
            "type": "shell",        //任务类型
            "command": "echo",      //命令
            "args": [               //命令参数
                "Hello, World!"
            ]
        }
    ]
}

    接着继续按照上面的方法Run Task...(执行任务),会看到多出了个选项,点击执行,

    会弹出如下窗口,继续点击

    会看到下方弹出一个窗口,输出如下:

    好了,你现在已经学会了tasks.json文件,感觉上面的参数,已经把该讲的都讲了,如果command没看懂,这就是需要补充cmd命令知识,不是VSCode的知识。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "dependsOn":[           // 任务依赖,在执行该任务前,需要先执行依赖任务
                "Create Bin folder"
            ],
            "label": "First task",  // 任务名称
            "type": "shell",        // 任务类型
            "group": "none",        // 组, 只有3个选项"build", "test", "none", 感觉功能就是用来简化选择用的
                                    //  build组: 通过Tasks: Run Build Task选择, 也可以通过Tasks: Run Task选择
                                    //  test组:  通过Tasks: Run Test Task选择, 也可以通过Tasks: Run Task选择
                                    //  none组:  通过Tasks: Run Task选择,就是显示全部任务
            "command": "echo",      // 命令
            "args": [               // 命令参数
                "Hello, World!"
            ]
        },

        /
		// # Creating
        /

        // ## Mac need to create bin folder
        {
            "label": "Create Bin folder",
            "type": "shell",
            "group": "none",
            "windows":{             // Window命令
                "command": "mkdir",
                "args": [
                    "-p",
                    "bin/${input:buildProject}",
                    ";", // PowerShell command, 不能用"&&"
                    "echo",
                    "Create BIN folder."
                ],
            },
			"osx": {                // Mac命令
                "command": "mkdir",
                "args": [
                    "-p",
                    "bin/${input:buildProject}",
                    "&&", 
                    "echo",
                    "Create BIN folder."
                ]
            },
            "options": {
                "cwd": "${workspaceFolder}/../"     // 指定当前的工作文件夹
            },
        },

        /
		// # Cleaning
        /

        // ## Clean build files
		{
            "label": "Clean Build folder",
            "type": "shell",
            "group": "none",
			"windows": {
                "command": "Remove-Item",
                "args": [
                    "build",
                    "-Recurse",
                    "-Force",
                    "-Confirm:$false",
                    ";", 
                    "echo",
                    "Cleaning Build folder."
                ]
			},
			"osx": {
				"command": "rm -r build && echo Cleaning Build folder."
			},
            "options": {
                "cwd": "${workspaceFolder}/../"
            },
        },
		// ## Clean bin files
		{
            "label": "Clean Bin folder",
            "type": "shell",
            "group": "none",
			"windows": {
                "command": "Remove-Item",
                "args": [
                    "bin*",
                    "-Recurse",
                    "-Force",
                    "-Confirm:$false",
                    ";", 
                    "echo",
                    "Cleaning BIN folder."
                ]
			},
			"osx": {
				"command": "rm -r bin* && echo Cleaning BIN folder."
			},
            "options": {
                "cwd": "${workspaceFolder}/../"
            },
        }
    ],

    "inputs": [
        {
            "id": "buildProject",                       // 标识
            "description": "Select project to build:",  // UI上的描述
            "default": "SFML",                          // 默认值
            "type": "pickString",                       // 类型,只有3个选项"promptString", "pickString", "command"
            "options": ["SFML", "Test"]                 // 选项
        }
    ]
}

    现在我们来添加后面会用到的3个task,顺便修改了"First task"。"First task"添加了dependsOn和group,都有相关注释,不再介绍。dependsOn因为后面会在编译的时候需要用上,这次就一并介绍了。3个新的task主要功能就是创建bin文件夹和删除bin文件夹和build文件夹,重点关注windows和osx这两个值,这是指定在执行那个平台的命令,因为不同的平台命令是不一样的。电脑是Win10的,所以选择了PowerShell执行命令,没有选择CMD执行命令。可以选择默认的终端,Ctrl + Shift + P输入Shell,选择Terminal: Select Default Shell。

    还有一个参数需要关注,这边将cwd(当前的工作文件夹)改成了"${workspaceFolder}/../",workspaceFolder表示的是当前工作目录,也就是现在的Game目录,"${workspaceFolder}/../"就表示与Game文件夹同级。主要是为了后期的管理方便,会动态创建3个文件夹build,bin,bin-int,这边解释一下,premake5会创建build目录,编译运行的时候,在Windows上也会创建bin和bin-int目录,但在Mac上不会创建bin目录,如果不先创建的话会导致第一次编译失败。

    tasks下面还添加了inputs,这个其实就是控制输入用的,在"Create Bin folder"task任务中,有个命令参数是"bin/${input:buildProject}", 表示${input:buildProject}通过用户的输入来控制,看一眼下面的截图就明白了。


    至此VSCode task需要用到的知识都介绍到了。以上的功能都可以在Windows和Mac上测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值