Использование динамического runtimeLibrary, несмотря на «static» в cpp.runtimeLibrary в профиле qbs - PullRequest
0 голосов
/ 04 марта 2019

У меня есть проект qbs, и я столкнулся со странным поведением связи с библиотекой времени выполнения.

Я использовал статические библиотеки Qt и пользовательские модули

//---------MyQtGuiApplication.qbs
import qbs

MyQtApplication {
    Depends { name: "Qt.gui" }
    Depends {
        name: "Qt"
        submodules: Qt.gui.defaultQpaPlugin
        condition: linkDefaultQpaPlugin && Qt.gui.defaultQpaPlugin
    }
    property bool linkDefaultQpaPlugin: Qt.gui.isStaticLibrary
}


//---------MyQtApplication.qbs
import qbs

MyNativeBinary {
    type: ["application"]

    Depends { name: "Qt.core" }
}


//---------MyNativeBinary.qbs
import qbs
import qbs.Environment

NativeBinary {
    Depends { name: "cpp" }
    property bool err: console.error(name + "______" + cpp.runtimeLibrary)
}

И простой пример

//---------test.qbs
import qbs

Project {
    MyQtGuiApplication {

        name: "test"

        Depends { name: "cpp" }
        // cpp.runtimeLibrary: "static"

        files: ["*.h", "*.cpp", "*.ui", "*.qrc", "*.rc"]
    }
}

Я четко определил profiles.windows-x86-msvc14.cpp.runtimeLibrary: "static", и он не переопределяется наследованиемили QBS файлы. Но если я не определю его в файлах qbs, я получу

error LNK2038: mismatch detected for 'RuntimeLibrary'

Я бы хотел сохранить модульность и не дублировать этот параметр.Есть ли у вас идеи, почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...