sta*_*tor 9 c++ cmake emscripten emmake emcmake
我有一个 CMake 项目 (C++),我想通过 WebAssembly 在 JavaScript 中使用它。为了配置它,我使用emcmake cmake和 来构建它emmake make。当我手动执行此操作时,我可以成功编译部分:
emcc --bind test.cpp
Run Code Online (Sandbox Code Playgroud)
但我想从 的优势中获利emmake。--bind我需要的参数emcc。emmake默认情况下不添加它,这会导致错误:
error: undefined symbol: _embind_register_function (referenced by top-level compiled C/C++ code)
Run Code Online (Sandbox Code Playgroud)
那么,在使用 构建时如何添加它emmake make?我可以将它传递给吗emmake?或者我可以添加一些东西到我的CMakeLists.txt吗?
麦克雷:
CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(MyTest)
add_executable(mytest test.cpp)
Run Code Online (Sandbox Code Playgroud)
test.cpp:
cmake_minimum_required(VERSION 2.8)
project(MyTest)
add_executable(mytest test.cpp)
Run Code Online (Sandbox Code Playgroud)
sta*_*tor 10
事实证明,您可以使用emcc以下命令从文件内传递选项:CMakeLists.txtset_target_properties(...)
CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(MyTest)
add_executable(mytest test.cpp)
set_target_properties(mytest PROPERTIES LINK_FLAGS "--bind")
Run Code Online (Sandbox Code Playgroud)
这种方法几乎适用于所有参数,除了-o控制输出文件的参数:
set(EXECUTABLE_OUTPUT_PATH subdir/for/emscripten)在执行之前更改可执行文件的输出路径add_executable(...)set(CMAKE_EXECUTABLE_SUFFIX ".mjs")根据需要更改可执行文件后缀 与add_executable(...)| 归档时间: |
|
| 查看次数: |
4946 次 |
| 最近记录: |