问题标签 [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.
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该命令有问题?!
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]
node.js - NodeJS,N-API、nan、node-gyp 和 cmake-js 的区别
我正在尝试学习如何在 NodeJS 中使用 C 和/或 C++ 库。
但它有点混淆了许多不同的工具和方法,以及它们之间的关系。
NodeJS N-API和“ nan ”有什么区别, node-gyp和/或cmake-js的作用是什么。
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构建的项目的结构:
一切似乎都是正确的,原则上它应该可以正常工作,但由于某种原因,它告诉我无法找到 writeText。
javascript - 从 js 文件传递 package.json 命令
我正在开发一个 node.js 本机插件。在为 32 位和 64 位构建时,我必须为两个不同的字段设置两个不同的命令。
对于32 位
对于64 位
如何使用单个命令适当地设置cmake-js字段和安装字段,或者我们可以通过 java-script 文件传递这些命令的任何方式。
我想要类似
npm run install32bit / install64bit
node.js - 从源代码编译 Node 时如何使用 CMakeJS?
我通常从源代码编译我的 NodeJS。我最近开始尝试使用 CMakeJS 集成一些 C 代码。在我的 Raspberry PI 上,一切都可以使用...
但是当我在我的笔记本电脑上尝试...
我得到...
如何让它与我的本地编译版本一起使用?
更新
我也试过了,但即使node -p process.release
显示正确,它仍然会尝试从 url 下载。
node.js - 为什么 N-API 在使用 napi_property_descriptor 数组时找不到某些绑定?
我有以下代码...
当我运行 hello world 部分工作正常但前进和停止功能失败...
TypeError:bindings.forward 不是函数
我对 C 开发很陌生,不明白如何找到错误。为什么 hello world 函数工作正常但 forward 函数失败?
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 主机
我试过的:
没有任何效果,这是我一直在获取的日志...
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,所以很难知道从哪里开始调试这个问题。任何见解将不胜感激。我希望这可以成为社区的宝贵资源。