c语言 - Emscripten 编译错误:"'openssl/sha.h' file not found"



我有一个名为"速度.c";我希望用于网络程序

这项工作:

gcc speed.c -lcrypto -lssl

但事实并非如此:

emcc speed.c -v -lcrypto -lssl -s EXPORTED_FUNCTIONS=_speed,_main -o speed.wasm

速度.c内的函数称为"速度";速度";。在Emscripten的网站上,它说编译器和其他编译器一样,所以这个让我很困惑。有什么帮助吗?谢谢

Emscripten不能使用系统的库。这是因为它们是为您自己的机器(可能是64位linux(编译的二进制文件,而emcc则编译为WebAssembly/JavaScript。您通常可以通过file:看到二进制文件的目标体系结构

$ file `realpath /usr/lib/libssl.so`

因此,您需要首先使用emcc编译OpenSSL。我自己没有做过,但我相信这是可能的。你可以看看这个github问题。完成后,您应该有两个名为libssl.alibcrypto.a的文件。然后你可以像这样编译你自己的项目:

$ SSL=/path/to/openssl
$ emcc speed.c $SSL/libssl.a $SSL/libcrypto.a -I $SSL/include/  # etc.

如果你还没有看一下项目构建页面。

相关内容

  • 没有找到相关文章

最新更新