我最近正在从事一个使用Emscripten的项目。我可以在终端上安装并运行一些示例,但是我想将其与Clion集成在一起,以便可以将emscripten直接包含到我的主项目中并进行构建。我试图将目录添加到New-Folder -Name myFolder -Location (Get-Folder -Name datastore)
,但是在构建目录时出错。谁能帮助我找到将Emscripten集成到Clion中的适当方法,或对包含在CMakeList
中的内容的任何建议。任何帮助将不胜感激。谢谢您的宝贵时间。
我将这些行包含在演示项目的CMakeList中:
CMakeList
以下是错误:
cmake_minimum_required(VERSION 3.12)
project(projectShell)
set(CMAKE_CXX_STANDARD 14)
if (${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
set(CMAKE_C_COMPILER "emcc")
endif ()
include_directories(include/rapidjson)
include_directories(/home/myfastcomp/emscripten/emscripten/system/include
)
add_executable(projectShell main.cpp library.cpp library.h)
if (${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
set_target_properties(projectShell PROPERTIES LINK_FLAGS "-o
dist/projectShell.js -s USE_FREETYPE=1 -s DISABLE_EXCEPTION_CATCHING=0 -s DEMANGLE_SUPPORT=1 -s SAFE_HEAP=1 --bind -s WASM=1 -O2 -s LEGACY_GL_EMULATION=0 -s GL_UNSAFE_OPTS=0 --pre-js pre-module.js --post-js post-module.js -s ASSERTIONS=1 -s GL_ASSERTIONS=1 -s INVOKE_RUN=0 -std=c++11 -s USE_WEBGL2=1 -s FULL_ES3=1 -s USE_GLFW=3 -s OFFSCREENCANVAS_SUPPORT=1 --preload-file textures --preload-file shaders --preload-file fonts")
endif()
答案 0 :(得分:2)
您可以通过创建工具链,设置正确的环境变量和设置编译选项来使用emscripten进行编译。
在构建,执行,部署>工具链中,添加一个新的系统工具链,并使用以下选项将其命名为Emscripten:
然后在 Build,Execution,Deployment> CMake 中添加新的配置文件,例如Debug-Emscripten。选择Emscripten工具链。您将需要设置emcmake
添加的CMake选项和环境变量。您可以通过设置环境变量EM_BUILD_VERBOSE=3
来查看选项,但是,要查看需要在Emscripten的源代码中挖掘的环境(在我的机器上,函数/usr/lib/emscripten/tools/shared.py
中的get_building_env
)。 / p>
要添加的CMake选项是:
-DCMAKE_CROSSCOMPILING_EMULATOR=path/to/node
-DCMAKE_TOOLCHAIN_FILE=path/to/cmake/Modules/Platform/Emscripten.cmake
我必须在计算机上添加的环境变量是:
CC=path/to/emscripten/emcc
CXX=path/to/emscripten/em++
AR=path/to/emscripten/emar
LD=path/to/emscripten/emcc
NM=path/to/emscripten-llvm/llvm-nm
LDSHARED=path/to/emscripten/emcc
RANLIB=path/to/emscripten/emranlib
EMMAKEN_COMPILER=path/to/emscripten-llvm/clang++
EMSCRIPTEN_TOOLS=path/to/emscripten/tools
HOST_CC=path/to/emscripten-llvm/clang
HOST_CXX=path/to/emscripten-llvm/clang++
HOST_CFLAGS=-W
HOST_CXXFLAGS=-W
PKG_CONFIG_LIBDIR=path/to/emscripten/system/local/lib/pkgconfig:path/to/emscripten/system/lib/pkgconfig
PKG_CONFIG_PATH=
EMSCRIPTEN=path/to/emscripten
CROSS_COMPILE=path/to/emscripten/em
您现在应该可以通过选择Debug-Emscripten配置进行编译。
答案 1 :(得分:1)
我使用app.post('/webhooks', function (req, res) {
if (req.body.event_type == 'PAYMENT.CAPTURE.COMPLETED') {
headers = {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
'Authorization' : 'Bearer <AUTH_TOKEN>'
}
// Get the data for the API call of the webhook request
data = {
'transmission_id': req.headers['paypal-transmission-id'],
'transmission_time': req.headers['paypal-transmission-time'],
'cert_url': req.headers['paypal-cert-url'],
'auth_algo': req.headers['paypal-auth-algo'],
'transmission_sig': req.headers['paypal-transmission-sig'],
'webhook_id': '41G05244UL253035G',
'webhook_event' : req.body
}
request.post({
url: 'https://api.sandbox.paypal.com/v1/notifications/verify-webhook-signature',
headers: headers,
form: data,
}, (error, response, body) => {
if (error) {
console.error(error)
return
}
console.log(response.statusCode);
});
}
res.sendStatus(200);
});
在偏好设置-> build-> cmake中设置了emscripten的工具链
在项目cmake中,我将源链接到可执行文件。对于编译标志,我使用了参数。
-DCMAKE_TOOLCHAIN_FILE=..../sdks/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
答案 2 :(得分:0)
CLion无法很好地理解“ emcmake”和“ emmake”命令的概念。目前最好的方法是从终端运行它。
从理论上讲,应该可以不使用emcmake命令,而将CMake CLion设置配置为使用特定于脚本的工具链cmake文件,但是由于某些原因,它不能很好地工作