我正在使用 Bazel (5.2.0) 構建一個 emscripten 應用程式。我的設定如下所示:
主.cpp:
#include "emscripten.h"
#include <iostream>
int main(int argc, char **argv) {
throw std::runtime_error("error!");
}
構建.bazel:
load("@rules_cc//cc:defs.bzl", "cc_binary")
load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary")
cc_binary(
name = "index",
srcs = ["main.cpp"],
copts = [
"-Wno-unused-variable",
"-Wno-unused-but-set-variable",
"-Wno-unused-function",
],
data = ["index.html"],
linkopts = [
"-s USE_GLFW=3",
"-s USE_WEBGPU=1",
"-s WASM=1",
"-s ALLOW_MEMORY_GROWTH=1",
"-s NO_EXIT_RUNTIME=0",
"-s ASSERTIONS=1",
"-s EXCEPTION_CATCHING_ALLOWED=[..]",
],
tags = ["manual"],
)
wasm_cc_binary(
name = "index-wasm",
cc_target = ":index",
)
WORKSPACE.bazel:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "emsdk",
strip_prefix = "emsdk-311acff345fd71dcfe5f350653cec466ee7e3fbc/bazel",
url = "https://github.com/emscripten-core/emsdk/archive/311acff345fd71dcfe5f350653cec466ee7e3fbc.tar.gz",
)
load("@emsdk//:deps.bzl", emsdk_deps = "deps")
emsdk_deps()
load("@emsdk//:emscripten_deps.bzl", emsdk_emscripten_deps = "emscripten_deps")
emsdk_emscripten_deps(emscripten_version = "3.1.13")
當構建我的應用程式時,我收到錯誤:
main.cpp:11:5: error: cannot use 'throw' with exceptions disabled
throw std::runtime_error("error!");
^
我s EXCEPTION_CATCHING_ALLOWED=[..]",已經在鏈接選項中添加了“-”,但這似乎無濟于事。
知道如何使用 Bazel 在 Emscripten 中啟用例外嗎?
uj5u.com熱心網友回復:
您應該將Enable C Exceptions選項設定為Yes并將Enable Objective-C Exceptions設定為Yes。如果您仍然有問題,請參考
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494842.html
上一篇:為什么Boolean.valueOf(String)在既不給真也不給假而是隨機字串時回傳假?[復制]
下一篇:以太坊交易(呼叫合約函式)是否會因assert()/require()/revert()或gas問題以外的原因而失敗?
