首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qbs StaticLibrary on MacOS

Qbs StaticLibrary on MacOS
EN

Stack Overflow用户
提问于 2017-11-26 12:15:14
回答 2查看 192关注 0票数 0

我尝试将一个现有的项目从qmake移到qbs,到目前为止一切都很好,但是我不能链接到MacOS上的那个项目中的google测试静态库,而在windows上它工作得很好。

在MacOS上我得到了:-1: error: symbol(s) not found for architecture x86_64

项目的GitHub回购

googletest.qbs:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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"
    ]
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-28 02:05:26

您需要在静态库产品中设置以下属性:

代码语言:javascript
复制
cpp.cxxLanguageVersion: "c++11"
cpp.cxxStandardLibrary: "libc++"
cpp.minimumMacosVersion: "10.7" // or higher

默认情况下,Qbs只允许编译器推断默认值。gtest碰巧需要C++11和libc++,而苹果在macOS 10.7和更高版本上只支持它们。

票数 1
EN

Stack Overflow用户

发布于 2017-11-26 12:51:25

你确定这是链接器的全部错误信息吗?是否还提到了实际缺失的符号?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47496052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档