1

ビルドごとに逆アセンブラファイルを作成したい。このコマンドはこれを行います:

arm-none-eabi-objcopy -DS project.elf > project.dasm

qbsで実行する方法は? そのためのルールを作成しようとしました。

Rule {
    id: dasm
    inputs: "application"
    Artifact {
        fileTags: ["dasm"]
        filePath: FileInfo.baseName(input.filePath) + ".dasm"
    }
    prepare: {
        var args = ["-DS", input.filePath, ">", output.filePath];
        var cmd = new Command("arm-none-eabi-objdump", args);
        cmd.description = "disassembler from: "+FileInfo.fileName(input.filePath);
        cmd.highlight = "linker";
        cmd.silent = true;
        return cmd;

    }
}

ただし、これはビルド コンソールに結果を表示するだけで、最後の 2 つの引数にエラーが表示されます。何か案は?

4

2 に答える 2

0

stdoutFilePathQbs 1.5.0 では、 Command オブジェクトの newおよびstderrFilePath プロパティを使用して、コマンド出力をファイルにリダイレクトできます。

例えば:

Rule {
    id: dasm
    inputs: ["application"]
    Artifact {
        fileTags: ["dasm"]
        filePath: input.baseName + ".dasm"
    }
    prepare: {
        var args = ["-DS", input.filePath];
        var cmd = new Command("arm-none-eabi-objdump", args);
        cmd.description = "disassembling " + input.fileName;
        cmd.stdoutFilePath = output.filePath;
        cmd.highlight = "linker";
        cmd.silent = true;
        return cmd;
    }
}
于 2016-05-14T04:19:30.597 に答える