我目前正在尝试使用node-gyp将C++与nodejs项目连接起来。我当前的问题是我有一个32位库文件和一个64位库文件。我的电脑使用的是 64 位。如果我使用32位库文件,并使用
node-gyp
重建构建它,当我使用该库的函数时,它会出现无法解析的外部符号的错误,但如果我使用64位库,它工作正常。我想知道是否有办法在计算机是 32 位的情况下包含 32 位库,如果计算机是 64 位则包含 64 位库
我尝试跑步
node-gyp clean configure build --verbose --arch=ia32
但是当我运行node index.js时它会返回以下错误
testaddon.node is not a valid Win32 application.
我的库的 binding.gyp 文件如下
"libraries": [
"../cppsrc/lib/some32.lib"
]
我检查了这个链接,但在条件下似乎没有拱形选项
(对于这个老问题)一个可能的解决方案是根据构建库文件的体系结构来命名库文件,然后在 binding.gyp 中使用变量,在 macos 和 linux 上可以这样做:
"libraries": [
"../cppsrc/lib/some.<!(uname -m | tr A-Z a-z).lib"
]
根据您使用的 shell,Windows 可能有等效的东西。
有关详细信息,请参阅 https://gyp.gsrc.io/docs/InputFormatReference.md#Variables-and-Conditionals。