【问题标题】:How to include <emscripten/emscripten.h>如何包含 <emscripten/emscripten.h>
【发布时间】:2020-12-27 13:59:30
【问题描述】:

我需要在我的 CMakeLists.txt 文件中添加什么,以便 here 中的以下示例仍然可以构建?

我可以毫无问题地生成 WASM,但不知道在尝试运行 c 代码时要添加什么到我的 CMakeLists.txt 以停止出现错误

致命错误:找不到“emscripten/emscripten.h”文件 #include

我尝试查找示例,但遗憾的是我没有找到。

#include <stdio.h>
#include <emscripten/emscripten.h>
    
int main(int argc, char ** argv) {
    printf("Hello World\n");
}
    
#ifdef __cplusplus
extern "C" {
#endif
    
EMSCRIPTEN_KEEPALIVE void myFunction(int argc, char ** argv) {
    printf("MyFunction Called\n");
}
    
#ifdef __cplusplus
}
#endif

我的 CMakeLists.txt 目前是准系统,包含以下内容:

cmake_minimum_required(VERSION 3.17)
project(WASM)
    
set(CMAKE_CXX_STANDARD 14)
    
add_executable(WASM main.cpp)

【问题讨论】:

  • 我认为您需要在main.cpp 之前将emscripten/emscripten.h 添加到add_executable 列表中
  • 你也安装 emscripten?
  • @KamilCuk 它带有我已经安装的 python 3.6。
  • 那么empcripten.h文件安装在哪里?
  • @KamilCuk 我在 usr/local/Cellar/emscripten/2.0.10/libexec/system/include/emscripten/emscripten.h 使用 find 命令找到了它

标签: c++ cmake webassembly


【解决方案1】:

确保在配置时使用 emsdk 提供的名为 emcmake 的 cmake 包装脚本。该脚本负责为 emsdk 设置编译环境,即:

   $ mkdir build
   $ cd build
   $ /path/to/emcmake cmake ..
   $ make

另请参阅以下Github issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 2018-02-09
    相关资源
    最近更新 更多