gpt4 book ai didi

c++ - 使用 node-gyp 预定义变量 PRODUCT_DIR

转载 作者:IT老高 更新时间:2023-10-28 23:13:00 31 4
gpt4 key购买 nike

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行为真的很奇怪,我不得不说。我尽可能避免它。通常通过使用普通 Node 编写外部构建脚本。

你不能"<!(echo <(PRODUCT_DIR) 1>&2)"的原因那是node-gyp的某种特殊变量。

但是您使用了正确的格式,例如 here ...

{
'files': [ '<(PRODUCT_DIR)/libzip.dll' ],
'destination': '<(module_path)'
}

我的猜测是你需要...

"variables": {
"YOUR_DIR: "<(PRODUCT_DIR)/build/Release/"",
"your_libs": "-Wl,-rpath,<(CURRENT_DIR) ]"
}

你知道,它是 Python,我们不知道 :)

关于c++ - 使用 node-gyp 预定义变量 PRODUCT_DIR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30105839/

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