Roy*_*nto 12 c++ node.js node-gyp
在binding.gyp我想这样设置:
"libraries": [ "-Wl,-rpath,<working directory>/build/Release/" ]
我使用以下配置执行相同的操作:
"libraries": [ "-Wl,-rpath,<!(pwd)/build/Release/" ]
这工作,但这个问题是,它不会工作在Windows上或其它地方pwd不可用,也可以作为已经有一个预先定义的变量,这是不是最好的选择PRODUCT_DIR,可以在node-gyp实现这一目标.奇怪的是我无法使用这个变量PRODUCT_DIR.
我尝试了以下选项,但没有运气.错误说Library not loaded: @rpath/<lib>.dylib(rpath未设置):
"libraries": [ "-Wl,-rpath,>(PRODUCT_DIR)/build/Release/" ]"libraries": [ "-Wl,-rpath,<(PRODUCT_DIR)/build/Release/" ]"libraries": [ "-Wl,-rpath,>(PRODUCT_DIR)"]"libraries": [ "-Wl,-rpath,<(PRODUCT_DIR)"]当我尝试打印时,"<!(echo <(PRODUCT_DIR) 1>&2)"它说builddir: command not found.看起来变量有值builddir.它不应该打印目标目录而不是builddir吗?或builddir对编译器意味着什么?
我没有正确使用这个变量,还是我应该使用其他任何可用的变量?
PRODUCT_DIR我不得不说,行为真的很奇怪。我尽可能避免它。通常通过使用普通节点编写外部构建脚本。
不能的原因"<!(echo <(PRODUCT_DIR) 1>&2)"是这是 node-gyp 的某种特殊变量。
但是您使用的是正确的格式,就像这里......
{
'files': [ '<(PRODUCT_DIR)/libzip.dll' ],
'destination': '<(module_path)'
}
Run Code Online (Sandbox Code Playgroud)
但我的猜测是你需要......
"variables": {
"YOUR_DIR: "<(PRODUCT_DIR)/build/Release/"",
"your_libs": "-Wl,-rpath,<(CURRENT_DIR) ]"
}
Run Code Online (Sandbox Code Playgroud)
你知道,它是 Python,我们不知道:)
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |