You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022与Premake:为自定义FASM规则添加并行构建支持

解决Premake中FASM汇编文件并行构建的问题

一、直接用Premake脚本开启并行

Premake的自定义规则默认没开启并行,你只需要在定义FASM规则的时候,加一行parallelBuild "true"就行。比如你的规则脚本可以改成这样:

rule "FASM"
    display "FASM Assembler"
    fileExtension ".asm"

    buildmessage "Assembling %{file.name}"
    buildcommands {
        "fasm.exe %{file.relpath} %{cfg.objdir}/%{file.basename}.obj"
    }
    buildoutputs { "%{cfg.objdir}/%{file.basename}.obj" }

    -- 关键:打开并行构建开关
    parallelBuild "true"

这样生成的项目里,FASM规则就会带上并行选项,和手动改“自定义生成”的效果一致。

二、手动修改生成的规则文件(脚本配置无效时用)

如果上面的脚本设置没起作用,直接改Premake生成的.rules文件(比如FASM.rules):

  • 找到文件里的<Rule>节点
  • 添加上<ParallelBuild>true</ParallelBuild>,放在<Outputs>附近即可,比如:
<Rule Name="FASM" DisplayName="FASM Assembler">
    <!-- 其他原有配置 -->
    <Outputs>$(IntDir)\%(Filename).obj</Outputs>
    <ParallelBuild>true</ParallelBuild>
</Rule>

保存后重新加载项目,asm文件就能并行构建了。

三、换个方式:把asm文件设为自定义生成项

要是不想单独维护FASM规则,也可以直接把asm文件当成自定义生成项来添加,不用单独定义规则:

files "*.asm"
filter "files:**.asm"
    buildmessage "Assembling %{file.name}"
    buildcommands {
        "fasm.exe %{file.relpath} %{cfg.objdir}/%{file.basename}.obj"
    }
    buildoutputs { "%{cfg.objdir}/%{file.basename}.obj" }
    parallelBuild "true"

这种方式生成的项目里,asm文件会用VS默认的“自定义生成”类型,自带并行选项,省得折腾自定义规则。

内容的提问来源于stack exchange,提问作者raff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:40:00