登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
安全
›
C/C++与JavaScript的WebAssembly编程(一)
C/C++与JavaScript的WebAssembly编程(一)
[ 复制链接 ]
寇油
2025-6-1 18:53:16
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
1. JavaScript与C/C++混合编程的技术
JavaScript与C++混合编程可以实现两种语言的优势结合,C++的程序性能很高且支持强大的系统调用能力,JavaScript则生态丰富且开发效率高。
JavaScript与C++混合编程常见的技术手段主要有以下几种:
Node.js的C++扩展
: 常用于Node.js实现的后端服务代码。在WebAssembly出现之前,Node.js的服务器代码通常以这种方式调用C/C++的模块。
JsAPI和Native API
: 常应用于包含WebView的客户端。将Native端的代码封装成Web接口(JsAPI)供前端调用,将Web端的代码封装成Native接口供Native调用。像Electron、CEF技术栈的客户端均采用了此种方式。
WebAssembly
: 主要用于浏览器上运行的前端页面,Node.js从8.0开始也支持WebAssembly,因此也可用于服务端开发。
本章所讲的内容是基于WebAssembly的混合编程技术。
2. 什么是WebAssembly?
WebAssembly
是一种新的编码方式,是一种为web设计的高效、低级字节码格式。我们可以将C/C++、Rust等低级语言编写的代码编译成WebAssembly字节码,现代的Web浏览器可以加载WebAssembly,并与JavaScript协同运行。从而使得
WebAssembly成为JavaScript与C/C++混合编程并在Web上运行的最有效机制
。C/C++编译成的WebAssembly能够以接近原生语言的效率在浏览器上运行。
2.1. 支持WebAssembly的浏览器
支持WebAssembly的常用浏览器及版本:
Chrome 57及以上版本。
Firefox 52及以上版本。
Edge 16(基于Chromium的版本)及以上。
Safari 11及以上版本。
Opera 44及以上版本。
参考信息: https://caniuse.com/wasm
此外,Node.js从8.0版本也开始支持WebAssembly,WebAssembly目前已经成了W3C的Web标准之一。
2.2. WebAssembly的编译器
除了C/C++外,WebAssembly还支持多种其他计算机语言编译成.wasm,常见的语言和编译器如下:
C/C++
: emscripten编译工具链可以将 C/C++ 编译成 WebAssembly。
Rust
: wasm-pack:工具可以将 Rust 编译成 WebAssembly。
Go
: Go语言的官方工具就链支持将 Go 编译成 WebAssembly。
3. 开发环境搭建
emscripten官方文档: https://emscripten.org/docs/getting_started/downloads.html
依赖的环境准备
git
Python3.6或更新版本(Windows)
安装步骤
# 1. 从Github上克隆emsdk仓库
# emsdk即Emscripten SDK,是将C/C++编译成WebAssembly的工具
git clone https://github.com/emscripten-core/emsdk.git
# 2. 进入emsdk目录
cd emsdk
# 3. 下载和安装最新的SDK tools(包括node.js、emscripten等)
# Linux/macOS:
./emsdk install latest
# Windows:
./emsdk.bat install latest
# (安装大概需要十几分钟的时间,可以去喝杯茶休息一下了)
# 会将相关的工具安装在以下三个目录
# emsdk/node
# emsdk/upstream
# emsdk/python (Windows才有,会安装nuget)
# 4. 为当前用户设置latest版本为当前激活的工具
# Linux/macOS:
./emsdk activate latest
# Windows:
./emsdk.bat activate latest
# 5. 为当前命令终端设置环境变量
# Linux/macOS:
source ./emsdk_env.sh
# Windows:
./emsdk_env.bat
# 6. 验证是否安装成功
emcc -v
# (如果有显示正常的版本信息,则说明安装成功)
复制代码
以上示例基于3.1.72版本的emscripten。
4. Hello World程序
我们从一个Hello World程序开始,了解WebAssembly程序的开发、编译、运行的大致流程。
<ol>新建一个测试目录hello_world和源码文件hello.cpp。
[code]// hello_world/hello.cpp#include int main(){ std::cout
JavaScript
WebAssembly
编程
相关帖子
CLI 编程代理横向分析报告
写了10年代码的人,在AI编程时代反而最值钱
写了10年代码的人,在AI编程时代反而最值钱
kimi 2.5编程能力测试,效果非常不错
网页端3D编程小实验-一种多人自走棋游戏原型
网页端3D编程小实验-一种多人自走棋游戏原型
网页端3D编程小实验-一种多人自走棋游戏原型
基于.NET的Windows窗体编程之WinForms布局简介
基于.NET的Windows窗体编程之WinForms布局简介
密码学系列之C/Python编程实现AES算法
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
CLI 编程代理横向分析报告
0
601
即息极
2026-04-01
业界
写了10年代码的人,在AI编程时代反而最值钱
2
279
硫辨姥
2026-04-03
业界
写了10年代码的人,在AI编程时代反而最值钱
1
313
列蜜瘘
2026-04-03
业界
kimi 2.5编程能力测试,效果非常不错
1
663
别萧玉
2026-04-03
业界
网页端3D编程小实验-一种多人自走棋游戏原型
0
542
柏球侠
2026-04-03
业界
网页端3D编程小实验-一种多人自走棋游戏原型
1
798
尹疋
2026-04-03
业界
网页端3D编程小实验-一种多人自走棋游戏原型
0
937
吮槌圯
2026-04-03
安全
基于.NET的Windows窗体编程之WinForms布局简介
0
9
咪四
2026-04-05
安全
基于.NET的Windows窗体编程之WinForms布局简介
1
10
豌笆
2026-04-05
业界
密码学系列之C/Python编程实现AES算法
0
872
娥搽裙
2026-04-05
回复
(29)
步雪卉
2025-12-6 19:52:29
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
不错,里面软件多更新就更好了
仄谦
2025-12-12 09:04:38
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
分享、互助 让互联网精神温暖你我
费卿月
2025-12-13 20:21:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享
董绣梓
2025-12-14 03:36:46
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,下载保存了,貌似很强大
浦乐
2025-12-25 23:46:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
骆贵
2026-1-15 08:18:52
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
过来提前占个楼
祖柔惠
2026-1-18 00:36:42
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个好,看起来很实用
毁抨句
2026-1-18 13:25:28
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢,下载保存了
锑砖
2026-1-20 01:06:58
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
喳谍
2026-1-20 03:20:01
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
思矿戳
2026-1-20 13:33:21
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
喜欢鼓捣这些软件,现在用得少,谢谢分享!
汪之亦
2026-1-21 13:43:36
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
鞍注塔
2026-1-23 14:06:29
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
镝赋洧
2026-1-28 03:34:54
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
损注
2026-2-9 01:35:13
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,学习下。
柏雅云
2026-2-9 01:44:08
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
郦惠
2026-2-9 04:59:11
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享
获弃
2026-2-10 02:52:39
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享
尚腱埂
2026-2-11 05:58:44
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
寇油
2026-2-11 05:58:44
关注
0
粉丝关注
27
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991126
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9516
6
韶又彤
9910
7
荪俗
8995
8
宋子
9875
9
蓬森莉
9869
10
俞瑛瑶
10000
查看更多
今日好文热榜
753
GitHub 热门项目 Top 10 | 2026 年 04 月 0
190
Spring Cloud Gateway实战:微服务API网关
783
罗兰艺境GEO内容工程实战复盘:CSDN 92分技
522
MacBook Air 本地运行大语言模型(LLM)
49
【渗透测试】玄机&Maze 全过程wp
791
AI元人文:大儒家观之功夫论——痕迹生生、
273
"Meta-Harness: End-to-End Optimization o
397
UI 自动化测试产品深度对比分析报告
237
指派问题WebApp实验室:从建模到智能分配的
901
MyBatis-Plus实战:Spring Boot数据库操作
561
指派问题WebApp实验室:从建模到智能分配的
839
《思想合奏:一场关于“自感即界面即自我”
596
【OpenClaw】通过 Nanobot 源码学习架构 --
489
AI时代如何临摹项目:Vault跨项目持久化存
533
AI时代如何临摹项目:Vault跨项目持久化存
892
AI时代如何临摹项目:Vault跨项目持久化存
885
读2025世界前沿技术发展报告33深海装备与技
998
AI时代如何临摹项目:Vault跨项目持久化存
177
《思想合奏:一场关于“自感即界面即自我”
101
深度学习进阶(四)Transformer 整体结构