У меня есть подмодуль, созданный cmake, и я успешно собрал его в сценарии qbs (см. Код ниже).
Product {
name: "mylib"
type: ["staticlibrary"]
// define buildScript, outputPath, libPrefix, libExt, cmakeBuildType, cmakeBuildConfig
// Note that outputPath is inside mylib folder, not qbs's build directory
Rule {
multiplex: true
outputArtifacts: [
{
filePath: product.outputPath + product.libPrefix + "lib1static" + product.libExt,
fileTags: ["staticlibrary"]
},
{
filePath: product.outputPath + product.libPrefix + "lib2static" + product.libExt,
fileTags: ["staticlibrary"]
}
]
outputFileTags: ["staticlibrary"]
prepare: {
var cmd = new Command(product.buildScript, [product.outputPath, product.cmakeBuildType, product.cmakeBuildConfig]);
cmd.description = "cmake generate mylib";
cmd.workingDirectory = product.sourceDirectory + "/mylib/build_cmake";
return [cmd];
}
}
Однако иногда qbs удаляет "lib1static" и "lib2static", и я получаю эту ошибку при компоновке:
clang: error: no such file or directory: '<path>/lib1static.a'
clang: error: no such file or directory: '<path>/lib2static.a'
Я пытался отладить, но все еще не знаю, почему,Первая сборка может быть успешной со всеми собранными выходными библиотеками, но в следующей сборке все библиотеки исчезнут.
Может кто-нибудь здесь объяснить и сказать мне, что является лучшим методом для этого случая?