gpt4 book ai didi

c++ - OSX 10.8 上 -stdlib=libc++ 的无效部署目标

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:32 24 4
gpt4 key购买 nike

我正在通过 node-gyp 编译一个用 C++ 编写的 Node.JS 包。当我编译它时,我收到以下错误:clang: error: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later)。我在 OSX 10.8 上运行,并且安装了 XCode 命令行工具。这是 node-gyp 用来编译包的文件:

{
"targets": [
{
"target_name": "package_name",

'type': 'executable',

'xcode_settings': {
'OTHER_CFLAGS': [
"-std=c++11",
"-stdlib=libc++"
],
},

"sources": [ "package_src.cpp" ],
}
]
}

基本上它指定了编译的目标、类型和标志,以及源。

关于如何解决这个问题有什么想法吗?

最佳答案

当您获得 OS X 10.8 时,clang 将尝试构建它,以便它也可以在其他较旧的 OS X 版本上运行。现在由于 -stdlib=libc++ 要求最低版本为 10.7,除非您通过指定

明确告诉它您将使用 10.7(或更高版本)作为部署目标,否则它不会编译它
'MACOSX_DEPLOYMENT_TARGET': '10.7'

xcode_settings 中。

在您的情况下,完整的设置应如下所示:

{
"targets": [
{
"target_name": "package_name",

'type': 'executable',

'xcode_settings': {
'MACOSX_DEPLOYMENT_TARGET': '10.7',

'OTHER_CFLAGS': [
"-std=c++11",
"-stdlib=libc++"
],
},

"sources": [ "package_src.cpp" ],
}
]
}

关于c++ - OSX 10.8 上 -stdlib=libc++ 的无效部署目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com