Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于Linux arm64的支持 #23

Open
Xu-Wade opened this issue Mar 2, 2023 · 16 comments
Open

关于Linux arm64的支持 #23

Xu-Wade opened this issue Mar 2, 2023 · 16 comments

Comments

@Xu-Wade
Copy link

Xu-Wade commented Mar 2, 2023

想问一下后续能支持Linux arm64吗?

@Xu-Wade
Copy link
Author

Xu-Wade commented Mar 20, 2023

作者大大你好,我在src中看到了关于linux-arm的package.json,但是在release中却没有相关的node,是暂时还不支持吗?

@nashaofu
Copy link
Owner

不太会交叉编译,arm64的编译总是报错

@Xu-Wade
Copy link
Author

Xu-Wade commented Mar 21, 2023

噢好的。还有就是,除了node-screenshots,您的其他截屏(像electron-screenshot)也是不支持Linux-Arm架构吗?

@Xu-Wade
Copy link
Author

Xu-Wade commented Mar 24, 2023

还有个问题需要请教下,我在linux-arm架构下拉取这个项目,是可以尝试编译的吗?
我如果正常在项目中引用这个库的话,会报错can‘t find module‘node-screenshots-linux-arm-gnu’ T_T

@nashaofu
Copy link
Owner

你可以尝试编译一下吧,直接引用这个库会报错的,因为没有编译出arm的二进制文件,这个项目的二进制文件是提前生成好的,不是安装包的时候编译的。
如果你有兴趣,可以帮忙编译一下arm的包

@Xu-Wade
Copy link
Author

Xu-Wade commented Mar 25, 2023

好的!我很想试试能不能编得下来^_^
还有几个疑惑:(周六提出的问题是我想错了,现在更新如下)
(1)提前生成的话,那其他架构的二进制文件也在项目中吗?我在库中没有找到对应位置;
(2)fromPoint等API接口具体是在哪实现的?
(3)我在执行slim-initial.sh的时候报错显示:
“一个窗口管理器正在运行,display为:0
error:无法找到需要控制的屏幕
请确保没有其他窗口管理器正在运行”,不知您之前有遇到过同样的问题吗?

@nashaofu
Copy link
Owner

nashaofu commented Mar 27, 2023

  1. 你可以看看napi-rs的设计,在安装依赖时,会根据系统架构去拉取对应的二进制包

image

2. fromPoint等API接口是使用rust实现的,具体可参考https://github.com/nashaofu/screenshots-rs 3. slim-init.sh 是用于打包生成docker镜像的(用于测试),你不需要管这个,交叉编译可以看看napi-rs的说明

@nashaofu
Copy link
Owner

可以正常运行了吗

@Xu-Wade
Copy link
Author

Xu-Wade commented Mar 29, 2023

编译是编译了但是还不知道能不能用,如果能正常运行,我发你这版的二进制文件吧?^_^
还想请教个问题是,正常该怎么在js中调用C++的库呢?

@nashaofu
Copy link
Owner

nashaofu commented Mar 29, 2023

js调用c++官方实现,搜索引擎关键词napi,如果用rust编写也可以使用napi-rs。测试编译后的文件是否有效,可以直接用下面代码测试,API与本项目的README一样。

const { Screenshots } = require('./xxxxx.node')

如果你这边编译好了,希望能把你的编译步骤给到我,我这边使用ci执行

@zhuguli3005
Copy link

求大佬尽快适配linux-arm64

@Xu-Wade
Copy link
Author

Xu-Wade commented May 5, 2023

js调用c++官方实现,搜索引擎关键词napi,如果用rust编写也可以使用napi-rs。测试编译后的文件是否有效,可以直接用下面代码测试,API与本项目的README一样。

const { Screenshots } = require('./xxxxx.node')

如果你这边编译好了,希望能把你的编译步骤给到我,我这边使用ci执行

我是直接拉取代码在Linux-arm环境下编译的,没有交叉编译,直接发你二进制文件也可以吧?

@nashaofu
Copy link
Owner

nashaofu commented May 5, 2023

那这个不可以的,我这边npm包是使用ci发布的

@Xu-Wade
Copy link
Author

Xu-Wade commented May 6, 2023

好的,我后面编译出来会把步骤发你

@Xu-Wade
Copy link
Author

Xu-Wade commented May 26, 2023

前端这块我实在太萌新了...还有个小问题需要请教下您,关于const { Screenshots } = require('./xxxxx.node')这一步,
我在js下测试是可以正常运行的,但是放到ts下(同样的几行代码),调试控制台会直接异常退出,报出的错误还是后端库的error(no memory to lock),想问下您对这种情况有什么想法吗?

@yykoypj
Copy link

yykoypj commented Jul 24, 2024

node-screenshots.linux-arm64-gnu.node.zip
有需要的先拿这个二进制文件去用吧

@nashaofu nashaofu pinned this issue Jul 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants