在node-gip binding.gyp文件中,如何根据系统结构(32位、64位)包含不同的库文件
In node-gyp binding.gyp file, how to include different library files based on the system arch (32 bit, 64bit))
我目前正在尝试使用node-gyp将c++与nodejs项目连接起来。我目前的问题是我有一个32位库文件和一个64位库文件。我的电脑正在使用64位。如果我使用32位库文件,并使用node-gyp-rebuild构建它,当我使用该库的函数时,它将有未解析的外部符号的错误,但如果我使用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-和条件以获取详细信息。
相关文章:
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 在node-gip binding.gyp文件中,如何根据系统结构(32位、64位)包含不同的库文件
- 在 64 位 Linux armv8 计算机上编译 32 位二进制文件时遇到问题
- C++使用 adodb 在 64 位 Windows 7 中读取 Excel 文件?
- 无法在 64 位 Debian 上运行 32 位二进制文件
- Tcl 文件事件挂在 64 位版本的 Tcl 上
- 读取 64 位整数二进制文件
- 将Windows上32位和64位的Boost构建到同一文件夹中
- collect2:错误:ld 在制作带有代码块的 .so 文件(64 位版本)时返回 1 个退出状态
- 区分 32 位和 cl.exe 生成的 64 位 PE 对象文件(Visual Studio C++)
- Visual Studio - C++ - 以 32 位或 64 位构建和运行应用程序 - 从适当的程序文件目录加载 D
- 尝试在QTCreator上构建远程ARM设备的C ,可执行文件为64位
- 使用Solaris 64位或Linux 32位到Linux 64位的内存映射文件
- 32位Visual Studio生成64位可执行文件
- 读取 64 位整数文件
- 无法使用 dyn.load windows 7 64 位在 R 中加载 dll 文件
- 需要(构建?)文件以在Windows 7 64位上进行Eclipse
- 64位C++二进制文件消耗巨大的内存,即使二进制文件的大小也是巨大的
- 为什么我不能在 MinGW 中链接 64 位 .lib 文件?
- 我想在Windows上使用Clang从C++编译64位代码-找不到stdio.h文件