Qbs StaticLibrary на MacOS

Я пытаюсь переместить существующий проект из qmake в qbs, пока все работает нормально, но я не могу связать статическую библиотеку google test в этом проекте на MacOS, в то время как в Windows она работает нормально.

На MacOS я получаю :-1: error: symbol(s) not found for architecture x86_64

GitHub репо проекта

googletest.qbs:

import qbs

StaticLibrary {
name: "GoogleTest"files: [
"googletest/googletest/src/gtest-all.cc",
"googletest/googlemock/src/gmock-all.cc"]

cpp.includePaths: [
"googletest/googletest/include",
"googletest/googlemock/include",
"googletest/googletest",
"googletest/googlemock"]

Depends { name: "cpp" }
Export {
Depends { name: "cpp" }
cpp.includePaths: [
"googletest/googletest/include",
"googletest/googlemock/include"]
}
}

test.qbs:

import qbs

QtApplication {
name: "Test"targetName: "Test"
Depends { name: "Qt"; submodules: ["core","testlib"]; versionAtLeast: "5.6" }
Depends { name: "GoogleTest"}

cpp.cxxLanguageVersion: "c++11"consoleApplication: true

files: [
"QtTypePrinters.h",
"main.cpp",
"QStringTest.cpp"]
}

0

Решение

Вам необходимо установить следующие свойства в вашем продукте статической библиотеки:

cpp.cxxLanguageVersion: "c++11"cpp.cxxStandardLibrary: "libc++"cpp.minimumMacosVersion: "10.7" // or higher

По умолчанию Qbs просто позволяет компилятору выводить значения по умолчанию. gtest требует C ++ 11 и libc ++, которые, в свою очередь, поддерживаются Apple только в MacOS 10.7 и выше.

1

Другие решения

Вы уверены, что это полное сообщение об ошибке от компоновщика? Конечно, фактические пропущенные символы также упоминаются?

0

По вопросам рекламы [email protected]