我正在尝试使用 cmake 中的 emscripten 并生成一个 html 文件作为输出
但是它不输出html文件,而是只输出一个js和wasm文件。
我包含/设置 Emscripten 工具链文件并设置
CMAKE_EXECUTABLE_SUFFIX
,但它不起作用!
CMakeLists.txt
cmake_minimum_required(VERSION 3.2.1)
set(LINK_OPTIONS)
set(CMAKE_TOOLCHAIN_FILE $ENV{EMSDK_HOME}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake)
set(CMAKE_EXECUTABLE_SUFFIX ".html")
set(LINK_OPTIONS ${LINK_OPTIONS} -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sNO_EXIT_RUNTIME=0 -sASSERTIONS=1)
project(emscripten_project)
add_executable(emscripten_project main.cpp)
target_link_options(emscripten_project PUBLIC ${LINK_OPTIONS})
main.cpp
#include <iostream>
int main()
{
std::cout << "Emscripten Example\n";
return 0;
}
配置和构建命令
cmake . -G Ninja && ninja
运行
ninja -v
,给出这个:
[2/2] cmd.exe /C "cd . && C:\emsdk\upstream\emscripten\em++.bat -o emscripten_project.html -sUSE_GLFW=3 -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sNO_EXIT_RUNTIME=0 -sASSERTIONS=1 CMakeFiles/emscripten_project.dir/src/main.cpp.o -o emscripten_project.js && cd ."
cmake version is 3.25.2 and emcc version output is "emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.25 (febd44b21ecaca86e2cb2a25ef3ed4a0a2076365)"
重要的部分是在第一个
-o emscripten_project.js
之后有东西经过
-o emscripten_project.html