我尝试将一个现有的项目从qmake移到qbs,到目前为止一切都很好,但是我不能链接到MacOS上的那个项目中的google测试静态库,而在windows上它工作得很好。
在MacOS上我得到了:-1: error: symbol(s) not found for architecture x86_64
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"
]
}发布于 2017-11-28 02:05:26
您需要在静态库产品中设置以下属性:
cpp.cxxLanguageVersion: "c++11"
cpp.cxxStandardLibrary: "libc++"
cpp.minimumMacosVersion: "10.7" // or higher默认情况下,Qbs只允许编译器推断默认值。gtest碰巧需要C++11和libc++,而苹果在macOS 10.7和更高版本上只支持它们。
发布于 2017-11-26 12:51:25
你确定这是链接器的全部错误信息吗?是否还提到了实际缺失的符号?
https://stackoverflow.com/questions/47496052
复制相似问题