Mas*_*iar 5 c++ macos flags xcodebuild node-gyp
我正在通过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" ],
}
]
}
Run Code Online (Sandbox Code Playgroud)
基本上它指定了编译的目标,类型和标志,以及源.
关于如何解决这个问题的任何想法?
虽然你有OS X 10.8 clang将尝试构建它,以便它也可以在其他较旧的OS X版本上运行.现在,由于-stdlib=libc++需要最低版本10.7,否则它将无法编译它,除非您通过指定明确告诉它将使用10.7(或更高版本)作为部署目标
'MACOSX_DEPLOYMENT_TARGET': '10.7'
Run Code Online (Sandbox Code Playgroud)
在里面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" ],
}
]
}
Run Code Online (Sandbox Code Playgroud)
我不知道什么对你有用,@drewish,但这就是我让它工作的方法:
{
"targets": [
{
"target_name": "package_name",
'type': 'executable',
'xcode_settings': {
'OTHER_CFLAGS': [
"-std=c++11",
"-stdlib=libc++",
"-mmacosx-version-min=10.7"
],
},
"sources": [ "overcpu.cpp" ],
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8949 次 |
| 最近记录: |