首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web程序集:在c++库中使用emscripten

Web程序集:在c++库中使用emscripten
EN

Stack Overflow用户
提问于 2017-01-13 01:33:12
回答 4查看 2.7K关注 0票数 2

我计划在web应用程序中使用c++库,而web程序集似乎是一个很好的工具。我正在用emscripten来编译它。

我获得了这个开源c++库的源代码,并使用emmakeemmake 制作了它。

在这两个调用之后,我的/usr/local/<name of open source>/lib中有/usr/local/<name of open source>/lib库,/usr/local/<name of open source>/include中也有头文件。

我还有一个使用这个开源库的示例cpp代码。

问题是:如何为这个cpp文件创建html文件?这样的文件名为"test.cpp“,我尝试了这个命令,但是它导致了许多”未解决的符号“。

代码语言:javascript
复制
em++ -I/usr/local/<name of open source>/include -L/usr/local/<name of open source>/lib test.cpp -s WASM=1 -o final.html

然后我打电话给emrun在我的本地运行一个web服务器,但是final.html并没有显示我期望它显示的内容。

你能帮帮我吗?

控制台中未解析的符号警告

EN

回答 4

Stack Overflow用户

发布于 2017-01-23 15:13:25

警告(实际上是错误)显示您没有通过emscripten编译包含的库的cpp文件。除了文件test.cpp之外,您还需要将项目所需的每个文件提供给em++命令。有关此问题的更多信息,请阅读这里

现在转到问题的另一部分,emscripten将只为您“公开”的那些C++函数创建一个JS函数。(显然,这些公开函数调用的函数也将被编译,rest将被删除)。

关于实现这一点的小教程可以找到这里

一旦您的函数公开,您就可以从您自己的JS代码中调用它们(例如:将它们绑定到JS事件上)

票数 1
EN

Stack Overflow用户

发布于 2017-01-15 07:38:04

看起来您的库可能存在未满足的依赖项(未解决的符号)。emscripten构建是一个交叉构建,这意味着它不能使用您安装的系统库;相反,您必须使用emscripten编译器构建所有的依赖项。Emscripten有一种不幸的行为,即未解决的符号是警告(其他链接者认为这些都是错误),但是如果有它们,您的程序就不太可能工作。

票数 0
EN

Stack Overflow用户

发布于 2017-01-25 12:26:24

由于各种原因,Emscripten并不将未解决的符号视为编译错误。

在编译项目时,还需要链接生成的.a库。您使用的-I-L选项指定要在何处查找与程序链接的库,但没有指定要链接的库。

您需要将选项-l<name of your library>添加到编译命令中,以指定要将库链接到程序中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41626056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档