LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

@kuzulis

Опять я про QBS, случайно не знаете как подфиксить такую ошибку?

tcc.js:84: error: TypeError: Result of expression 'input' [undefined] is not an object.

Она появляется при попытке линковки двух и более оbj-файлов в один ELF. Если линковать один obj-файлик, то всё норм.

Где-то в этих местах собака зарылась:

// tcc.js
function prepareLinker(project, product, inputs, outputs, input, output) {
    var cmds = [];
    var args = linkerFlags(project, product, inputs, outputs);
    var linkerPath = input.cpp.linkerPath; // 'input' [undefined] is not an object.
    var cmd = new Command(linkerPath, args);
    cmd.description = "linking " + outputs.application[0].fileName;
    cmd.highlight = "linker";
    cmd.jobPool = "linker";
    cmds.push(cmd);
    return cmds;
}

// tcc.qbs
Rule {
        id: linker
	multiplex: true
        inputs: ["obj"]
        outputFileTags: ["application"]
        outputArtifacts: [{
                fileTags: ["application"],
                filePath: FileInfo.joinPaths(product.destinationDirectory,
                                             PathTools.applicationFilePath(product))
            }];
        prepare: Tcc.prepareLinker.apply(Tcc, arguments)
    }

Исправление EXL, :

@kuzulis

Опять я про QBS, случайно не знаете как подфиксить такую ошибку?

tcc.js:84: error: TypeError: Result of expression 'input' [undefined] is not an object.

Она появляется при попытке линковки двух и более оbj-файлов в один ELF. Если линковать один obj-файлик, то всё норм.

Где-то в этих местах собака зарылась:

// tcc.js
function prepareLinker(project, product, inputs, outputs, input, output) {
    var cmds = [];
    var args = linkerFlags(project, product, inputs, outputs);
    var linkerPath = input.cpp.linkerPath; // 'input' [undefined] is not an object.
    var cmd = new Command(linkerPath, args);
    cmd.description = "linking " + outputs.application[0].fileName;
    cmd.highlight = "linker";
    cmd.jobPool = "linker";
    cmds.push(cmd);
    return cmds;
}

// tcc.qbs
Rule {
        id: linker
		multiplex: true
        inputs: ["obj"]
        outputFileTags: ["application"]
        outputArtifacts: [{
                fileTags: ["application"],
                filePath: FileInfo.joinPaths(product.destinationDirectory,
                                             PathTools.applicationFilePath(product))
            }];
        prepare: Tcc.prepareLinker.apply(Tcc, arguments)
    }

Исходная версия EXL, :

@kuzulis

Опять я про QBS, случайно не знаете как подфиксить такую ошибку?

tcc.js:84: error: TypeError: Result of expression 'input' [undefined] is not an object.

Она появляется при попытке линковки двух и более оbj-файлов в один ELF. Если линковать один obj-файлик, то всё норм.

Где-то в этих местах собака зарылась:

// tcc.js
function prepareLinker(project, product, inputs, outputs, input, output) {
    var cmds = [];
    var args = linkerFlags(project, product, inputs, outputs);
	var linkerPath = input.cpp.linkerPath;
    var cmd = new Command(linkerPath, args);
    cmd.description = "linking " + outputs.application[0].fileName;
    cmd.highlight = "linker";
    cmd.jobPool = "linker";
    cmds.push(cmd);
    return cmds;
}

// tcc.qbs
Rule {
        id: linker
		multiplex: true
        inputs: ["obj"]
        outputFileTags: ["application"]
        outputArtifacts: [{
                fileTags: ["application"],
                filePath: FileInfo.joinPaths(product.destinationDirectory,
                                             PathTools.applicationFilePath(product))
            }];
        prepare: Tcc.prepareLinker.apply(Tcc, arguments)
    }