问题标签 [cmake-js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
251 浏览

cmake - 添加依赖项时,Unix make 文件因 cmakejs 失败

我用 napi 和 cmakejs 成功创建了一个本地节点插件。但是当添加一个简单的库时,由 cmake-js 生成的 unix make 文件会随着

[ 50%] 链接 CXX 静态库 liblib_name.a [ 50%] 构建目标 lib_name CMakeFiles/spielwiese.dir/flags.make:10: * 缺少分隔符。停止。make[1]: * [CMakeFiles/Makefile2:72: CMakeFiles/spielwiese.dir/all] 错误 2 make: *** [Makefile:130: all] 错误 2 ERR!OMG 进程终止:2

最小化的示例项目:https ://github.com/Superlokkus/spielwiese/tree/napi

根 CMakeLists 应该接近或打算接近 cmakejs 示例样板版本,只是具有一个附加功能PARSE_CMAKEJS_PROPERTIES ,也可以通过 cmake CLI 命令构建它,以便使用 CLion 等 IDE 进行良好的开发。但是,删除该PARSE_CMAKEJS_PROPERTIES功能时问题仍然存在。

add_subdirectory如果您删除https://github.com/Superlokkus/spielwiese/blob/napi/CMakeLists.txt#L47 aka并add_subdirectory(src/lib_name)更改https://github.com/Superlokkus/spielwiese/blob/napi/ CMakeLists.txt#L63又名target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_JS_LIB} lib_name)target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_JS_LIB})删除 https://github.com/Superlokkus/spielwiese/blob/napi/src/spielwiese.cpp#L3 aka #include <lib_name/lib_name.hpp>

该项目再次构建,包括。摩卡咖啡测试。但是,添加示例库,您会再次收到错误消息。

根 CMakeLists:

库名称 CMakeLists

更新 我做了一些实验,似乎

正在做麻烦,所以看起来cmakejs该命令有问题?!

0 投票
1 回答
528 浏览

c++ - C++ 中的 NAPI 本机模块正在部分执行(包括 std::thread)

我用 NAPI 编写的 Node-js 本机模块正在部分执行。
我在其中使用了多个线程。
在运行模块时,它有时会打印该线程已启动,但有时不会。
无论哪种方式,模块都永远不会到达 c++ 代码的末尾。
我已经尝试将我的 c++ 代码作为一个独立的应用程序,并且工作正常,没有任何警告或错误。
我已经在“CMakeList.txt”C++ 17 支持中打开了异常处理,
因为我使用的 std::filesystem 工作正常。
我在“CMakeList”中使用 find_package(Threads REQUIRED)。

文件 CMakeList.txt=>

文件包.json=>

部分执行的 C++ 代码 =>

函数 ExpSub=>

hwGuess 值为 4

结果应该是上面代码中的打印消息“虽然结束”,并且这应该每次都发生,而不是随机发生(检查随机执行“线程内线”的图像)。[在此处输入图片描述][1]

https://i.stack.imgur.com/55TGy.png

0 投票
1 回答
706 浏览

node.js - NodeJS,N-API、nan、node-gyp 和 cmake-js 的区别

我正在尝试学习如何在 NodeJS 中使用 C 和/或 C++ 库。

但它有点混淆了许多不同的工具和方法,以及它们之间的关系。

NodeJS N-API和“ nan ”有什么区别, node-gyp和/或cmake-js的作用是什么。

0 投票
0 回答
278 浏览

c# - NodeJs 插件宽度 C++/CLI 和 C# 程序集我无法让它运行

我正在尝试使用 CMAKE 在 nodejs 中构建一个插件。CPP 文件有一个由我在 CSharp 中创建的非常基本的依赖项,这是一个必须从 CPP 调用的类。当我在使用 Visual Studio 编译的 CPP 控制台应用程序中执行此操作时,一切正常。当我使用 CMAKE-JS 进行编译以创建节点插件时,问题就出现了,当它必须调用我在 Csharp 中创建的程序集 dll 中的方法时,它告诉我找不到指定的文件。


这是我在 CSharp 中的类库,它输出一个名为 writeText.dll 的文件(框架版本 4.8)

写文本.cs

这是利用 Csharp 中创建的依赖项的 Cpp 文件

主文件

这是我的 CmakeLists.txt,它编译了 nodejs 插件

CmakeLists.txt

完成后,一切都完美编译,生成/发布文件夹如下:

结构构建/发布图像

一切似乎都是正确的,插件被完美地创建,并且 writeText.dll 按预期复制到 build / Release 文件夹中。

然后我使用插件

main.js

我明白了

测试方法调用中,一切正常,并使用 System 命名空间完美地打印到我的屏幕上,但是当调用使用我的 writeText.dll 的set方法时,它告诉我找不到文件。

正如您在输出结构的图像中看到的那样,文件就在那里。此外,当我在 Visual Studio 中打开由 CMake 创建的项目时,程序集似乎是正确的。

这是Cmake构建的项目的结构:

项目 Cmake 结构

一切似乎都是正确的,原则上它应该可以正常工作,但由于某种原因,它告诉我无法找到 writeText。

0 投票
0 回答
39 浏览

javascript - 从 js 文件传递​​ package.json 命令

我正在开发一个 node.js 本机插件。在为 32 位和 64 位构建时,我必须为两个不同的字段设置两个不同的命令。

对于32 位


对于64 位

如何使用单个命令适当地设置cmake-js字段和安装字段,或者我们可以通过 java-script 文件传递​​这些命令的任何方式。

我想要类似
npm run install32bit / install64bit

0 投票
1 回答
187 浏览

node.js - 从源代码编译 Node 时如何使用 CMakeJS?

我通常从源代码编译我的 NodeJS。我最近开始尝试使用 CMakeJS 集成一些 C 代码。在我的 Raspberry PI 上,一切都可以使用...

但是当我在我的笔记本电脑上尝试...

我得到...

如何让它与我的本地编译版本一起使用?

更新

我也试过了,但即使node -p process.release显示正确,它仍然会尝试从 url 下载。

0 投票
1 回答
43 浏览

node.js - 为什么 N-API 在使用 napi_property_descriptor 数组时找不到某些绑定?

我有以下代码...

当我运行 hello world 部分工作正常但前进和停止功能失败...

TypeError:bindings.forward 不是函数

我对 C 开发很陌生,不明白如何找到错误。为什么 hello world 函数工作正常但 forward 函数失败?

0 投票
1 回答
1233 浏览

cmake - 无法使用 host=x86 或 -A Win32 为 Visual Studio 2019 生成 32 位配置

我正在尝试将 cmake 配置为分别构建 32 位和 64 位...

到目前为止 64 位很容易,因为我只需要添加 -A x64

但我无法设置 32 位拱门。官方文档建议 -A Win32 或 -T host=x86
https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2016%202019.html
即使使用它们我也无法设置 x86 主机

我试过的:

没有任何效果,这是我一直在获取的日志...

0 投票
0 回答
91 浏览

c++ - 使用带有 cmake-js 的 lib2geom 编译脚本以在 N-API node.js 插件中使用

我正在尝试在 Electron 应用程序中使用lib2geom。我能够编写一个脚本,该脚本使用该库来获取两条路径的交集,然后使用https://github.com/nodejs/node-addon-examples中的示例将其用 node-addon-api 包装。我主持了这次尝试:lib2geom-path-boolean-addon

我在使用 cmake-js 构建脚本时遇到问题(我成功地使用 CMake 构建了一个非插件脚本)。如 CMakeLists.txt 文件中所述,尝试运行 install npm 脚本时出现以下错误:

并在此处采纳建议(现已发表评论)并没有解决问题。

我只是在为这个插件学习 C++ 和 CMake,所以很难知道从哪里开始调试这个问题。任何见解将不胜感激。我希望这可以成为社区的宝贵资源。