整理项目目录结构

This commit is contained in:
zhangshun
2026-06-01 16:45:27 +08:00
parent ccfc17cee4
commit e8e485b115
20 changed files with 36 additions and 1 deletions

69
docs/build-logs/3.txt Normal file
View File

@@ -0,0 +1,69 @@
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/Robot.cpp `
src/spc_core.cpp `
src/QuadrupedRobotSimulation/BaseClass.cpp `
src/QuadrupedRobotSimulation/KinematicsSimulation.cpp `
src/QuadrupedRobotSimulation/CompleteJsonExporter.cpp `
src/QuadrupedRobotSimulation/KinematicsReverse.cpp `
src/CrankSliderMechanism.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/math_utils.cpp `
src/smart_json_wrapper.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./inc/QuadrupedRobotSimulation `
-I./src/kdl_parser/include `
-I./KDL/install_wasm/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install_wasm/lib `
-lorocos-kdl `
-gsource-map `
-O0 `
--source-map-base http://localhost:8080/ `
-s WASM=1 `
-s ASSERTIONS=2 `
-s STACK_OVERFLOW_CHECK=2 `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=268435456 `
-s USE_PTHREADS=0 `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s EXPORTED_FUNCTIONS='["_init_func","_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","lengthBytesUTF8","ccall","cwrap","HEAPU8","HEAP8","HEAPF32","HEAPF64"]' `
-Wno-deprecated-literal-operator `
-o public/wasm/smart_math.js
@echo off
echo 🚀 启动带调试支持的 Chrome...
REM 停止所有 Chrome 实例
taskkill /F /IM chrome.exe 2>nul
REM 使用调试标志启动 Chrome
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" ^
--remote-debugging-port=9222 ^
--enable-features=WebAssemblyDebugging ^
--no-first-run ^
--user-data-dir="C:\ChromeDebugProfile" ^
http://localhost:8000/debug.html
echo 🌐 Chrome 已启动,访问 http://localhost:9222 进行调试

63
docs/build-logs/emcc.txt Normal file
View File

@@ -0,0 +1,63 @@
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/Robot.cpp `
src/spc_core.cpp `
src/QuadrupedRobotSimulation/RobotConfig.cpp `
src/QuadrupedRobotSimulation/BaseClass.cpp `
src/QuadrupedRobotSimulation/KinematicsSimulation.cpp `
src/QuadrupedRobotSimulation/CompleteJsonExporter.cpp `
src/QuadrupedRobotSimulation/KinematicsReverse.cpp `
src/QuadrupedRobotSimulation/KinematicsHelper.cpp `
src/QuadrupedRobotSimulation/SharedGeometry.cpp `
src/FourBarMechanism/CrankSliderMechanism.cpp `
src/FourBarMechanism/CrankRockingBlockMechanism_Forward.cpp `
src/FourBarMechanism/CrankRockingBlockMechanism_Inverse.cpp `
src/FourBarMechanism/FourBarMechanism.cpp `
src/FourBarMechanism/SliderCrankMechanism.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/math_utils.cpp `
src/smart_json_wrapper.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./inc/QuadrupedRobotSimulation `
-I./inc/FourBarMechanism `
-I./inc/SharedGeometry `
-I./src/kdl_parser/include `
-I./KDL/install_wasm/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install_wasm/lib `
-lorocos-kdl `
-O3 `
-g0 `
-DNDEBUG `
-fno-standalone-debug `
-s WASM=1 `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=268435456 `
-s USE_PTHREADS=0 `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s EXPORTED_FUNCTIONS='["_init_func","_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","lengthBytesUTF8","ccall","cwrap","HEAPU8","HEAP8","HEAPF32","HEAPF64"]' `
-Wno-deprecated-literal-operator `
-o public/wasm/smart_math.js
python -m http.server 8080

View File

@@ -0,0 +1,71 @@
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/Robot.cpp `
src/spc_core.cpp `
src/QuadrupedRobotSimulation/BaseClass.cpp `
src/QuadrupedRobotSimulation/KinematicsSimulation.cpp `
src/QuadrupedRobotSimulation/CompleteJsonExporter.cpp `
src/QuadrupedRobotSimulation/KinematicsReverse.cpp `
src/QuadrupedRobotSimulation/KinematicsHelper.cpp `
src/QuadrupedRobotSimulation/SharedGeometry.cpp `
src/CrankSliderMechanism.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/math_utils.cpp `
src/smart_json_wrapper.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./inc/QuadrupedRobotSimulation `
-I./src/kdl_parser/include `
-I./KDL/install_wasm/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install_wasm/lib `
-lorocos-kdl `
-gsource-map `
-O0 `
--source-map-base http://localhost:8080/ `
-s WASM=1 `
-s ASSERTIONS=2 `
-s STACK_OVERFLOW_CHECK=2 `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=268435456 `
-s USE_PTHREADS=0 `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s EXPORTED_FUNCTIONS='["_init_func","_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","lengthBytesUTF8","ccall","cwrap","HEAPU8","HEAP8","HEAPF32","HEAPF64"]' `
-Wno-deprecated-literal-operator `
-o public/wasm/smart_math.js
@echo off
echo 🚀 启动带调试支持的 Chrome...
REM 停止所有 Chrome 实例
taskkill /F /IM chrome.exe 2>nul
REM 使用调试标志启动 Chrome
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" ^
--remote-debugging-port=9222 ^
--enable-features=WebAssemblyDebugging ^
--no-first-run ^
--user-data-dir="C:\ChromeDebugProfile" ^
http://localhost:8000/debug.html
echo 🌐 Chrome 已启动,访问 http://localhost:9222 进行调试

View File

@@ -0,0 +1,121 @@
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/Robot.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/math_utils.cpp `
src/smart_json_wrapper.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./src/kdl_parser/include `
-I./KDL/install_wasm/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install_wasm/lib `
-lorocos-kdl `
-g4 `
-O0 `
--source-map-base http://localhost:8000/ `
-s WASM=1 `
-s ASSERTIONS=2 `
-s SAFE_HEAP=1 `
-s STACK_OVERFLOW_CHECK=2 `
-s DEMANGLE_SUPPORT=1 `
-s GL_DEBUG=1 `
-s WASM_ASYNC_COMPILATION=0 `
-s ERROR_ON_UNDEFINED_SYMBOLS=0 `
-s WARN_ON_UNDEFINED_SYMBOLS=1 `
-s EXCEPTION_CATCHING_ALLOWED=['main'] `
-s DISABLE_EXCEPTION_CATCHING=0 `
-fexceptions `
-fwasm-exceptions `
-s EXCEPTION_DEBUG=1 `
-s EMULATE_FUNCTION_POINTER_CASTS=1 `
-s EMULATE_FUNCTION_POINTER_CAST_MEMORY_WARNING=0 `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=268435456 `
-s USE_PTHREADS=0 `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s EXPORTED_FUNCTIONS='["_init_func","_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","ccall","cwrap","getValue","setValue","stackSave","stackRestore","stackAlloc","addFunction","removeFunction","FS","PROXYFS","WORKERFS","NODEFS","IDBFS","MEMFS","TTY","allocate","intArrayFromString","AsciiToString","stringToAscii","ALLOC_NORMAL","allocateUTF8","allocateUTF8OnStack"]' `
-o public/wasm/smart_math.js
python -m http.server 8080
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/Robot.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/math_utils.cpp `
src/smart_json_wrapper.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./src/kdl_parser/include `
-I./KDL/install_wasm/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install_wasm/lib `
-lorocos-kdl `
-g4 ` # 最大调试信息
-O0 ` # 禁用优化
--source-map-base http://localhost:8000/ `
-s WASM=1 `
-s ASSERTIONS=2 ` # 启用断言
-s SAFE_HEAP=1 ` # 堆安全检查
-s STACK_OVERFLOW_CHECK=2 ` # 栈溢出检查
-s DEMANGLE_SUPPORT=1 ` # 支持 C++ 名称还原
-s GL_DEBUG=1 ` # OpenGL 调试
-s WASM_ASYNC_COMPILATION=0 ` # 同步编译,便于调试
-s ERROR_ON_UNDEFINED_SYMBOLS=0 `
-s WARN_ON_UNDEFINED_SYMBOLS=1 `
-s EXCEPTION_CATCHING_ALLOWED=['main'] `
-s DISABLE_EXCEPTION_CATCHING=0 `
-fexceptions ` # 启用异常
-fwasm-exceptions ` # WASM 异常支持
-s EXCEPTION_DEBUG=1 ` # 异常调试
-s EMULATE_FUNCTION_POINTER_CASTS=1 `
-s EMULATE_FUNCTION_POINTER_CAST_MEMORY_WARNING=0 `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=268435456 `
-s USE_PTHREADS=0 `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s EXPORTED_FUNCTIONS='["_init_func","_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","ccall","cwrap","getValue","setValue","stackSave","stackRestore","stackAlloc","addFunction","removeFunction","FS","PROXYFS","WORKERFS","NODEFS","IDBFS","MEMFS","TTY","allocate","intArrayFromString","AsciiToString","stringToAscii","ALLOC_NORMAL","allocateUTF8","allocateUTF8OnStack"]' `
-o public/wasm/smart_math.js
python -m http.server 8080

View File

@@ -0,0 +1,60 @@
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/Robot.cpp `
src/spc_core.cpp `
src/QuadrupedRobotSimulation/RobotConfig.cpp `
src/QuadrupedRobotSimulation/BaseClass.cpp `
src/QuadrupedRobotSimulation/KinematicsSimulation.cpp `
src/QuadrupedRobotSimulation/CompleteJsonExporter.cpp `
src/QuadrupedRobotSimulation/KinematicsReverse.cpp `
src/QuadrupedRobotSimulation/KinematicsHelper.cpp `
src/QuadrupedRobotSimulation/SharedGeometry.cpp `
src/FourBarMechanism/CrankSliderMechanism.cpp `
src/FourBarMechanism/CrankRockingBlockMechanism_Forward.cpp `
src/FourBarMechanism/CrankRockingBlockMechanism_Inverse.cpp `
src/FourBarMechanism/FourBarMechanism.cpp `
src/FourBarMechanism/SliderCrankMechanism.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/math_utils.cpp `
src/smart_json_wrapper.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./inc/QuadrupedRobotSimulation `
-I./inc/FourBarMechanism `
-I./inc/SharedGeometry `
-I./src/kdl_parser/include `
-I./KDL/install_wasm/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install_wasm/lib `
-lorocos-kdl `
-O3 `
-g0 `
-DNDEBUG `
-fno-standalone-debug `
-s WASM=1 `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=268435456 `
-s USE_PTHREADS=0 `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s EXPORTED_FUNCTIONS='["_init_func","_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","lengthBytesUTF8","ccall","cwrap","HEAPU8","HEAP8","HEAPF32","HEAPF64"]' `
-Wno-deprecated-literal-operator `
-o public/wasm/smart_math.js

View File

@@ -0,0 +1,70 @@
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/QuadrupedRobotSimulation/KinematicsHelper.cpp `
src/Robot.cpp `
src/spc_core.cpp `
src/QuadrupedRobotSimulation/BaseClass.cpp `
src/QuadrupedRobotSimulation/KinematicsSimulation.cpp `
src/QuadrupedRobotSimulation/CompleteJsonExporter.cpp `
src/QuadrupedRobotSimulation/KinematicsReverse.cpp `
src/CrankSliderMechanism.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/math_utils.cpp `
src/smart_json_wrapper.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./inc/QuadrupedRobotSimulation `
-I./src/kdl_parser/include `
-I./KDL/install_wasm/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install_wasm/lib `
-lorocos-kdl `
-gsource-map `
-O0 `
--source-map-base http://localhost:8080/ `
-s WASM=1 `
-s ASSERTIONS=2 `
-s STACK_OVERFLOW_CHECK=2 `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=268435456 `
-s USE_PTHREADS=0 `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s EXPORTED_FUNCTIONS='["_init_func","_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","lengthBytesUTF8","ccall","cwrap","HEAPU8","HEAP8","HEAPF32","HEAPF64"]' `
-Wno-deprecated-literal-operator `
-o public/wasm/smart_math.js
@echo off
echo 🚀 启动带调试支持的 Chrome...
REM 停止所有 Chrome 实例
taskkill /F /IM chrome.exe 2>nul
REM 使用调试标志启动 Chrome
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" ^
--remote-debugging-port=9222 ^
--enable-features=WebAssemblyDebugging ^
--no-first-run ^
--user-data-dir="C:\ChromeDebugProfile" ^
http://localhost:8000/debug.html
echo 🌐 Chrome 已启动,访问 http://localhost:9222 进行调试

View File

@@ -0,0 +1,96 @@
emcc `
src/KinematicsWebAPI.cpp `
src/main.cpp `
src/Robot.cpp `
src/RobotManager.cpp `
src/utils.cpp `
src/kdl_parser/src/kdl_parser.cpp `
src/kdl_parser/src/joint.cpp `
src/kdl_parser/src/link.cpp `
src/kdl_parser/src/model.cpp `
src/kdl_parser/src/pose.cpp `
src/kdl_parser/src/tinystr.cpp `
src/kdl_parser/src/tinyxml.cpp `
src/kdl_parser/src/tinyxml2.cpp `
src/kdl_parser/src/tinyxmlerror.cpp `
src/kdl_parser/src/tinyxmlparser.cpp `
src/kdl_parser/src/twist.cpp `
src/kdl_parser/src/world.cpp `
-I./inc `
-I./src/kdl_parser/include `
-I./KDL/install/include `
-I./Eigen3 `
-I./Eigen3/eigen3 `
-L./KDL/install/lib `
-lorocos-kdl `
--source-map-base http://localhost:8000/ `
-s WASM=1 `
-s EXPORTED_FUNCTIONS='["_func","_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","ccall","cwrap","HEAPU8", "HEAPU16", "HEAPU32", "HEAP8", "HEAP16", "HEAP32", "HEAPF32", "HEAPF64"]' `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s ALLOW_MEMORY_GROWTH=1 `
-s ASSERTIONS=2 `
-s STACK_OVERFLOW_CHECK=2 `
-s USE_PTHREADS=0 `
-s TOTAL_MEMORY=268435456 `
-s INITIAL_MEMORY=67108864 `
-s MAXIMUM_MEMORY=536870912 `
-g4 `
-O0 `
-o public/wasm/smart_math.js
# 方法1使用 Chocolatey 安装 ninja
choco install ninja
# 确保你在 build_wasm 目录中
cd C:\Robotics\orocos_kinematics_dynamics\orocos_kdl\build_wasm
# 使用反引号作为续行符
emcmake cmake .. `
-DCMAKE_INSTALL_PREFIX="C:\Robotics\kdl_wasm\KDL\install_wasm" `
-DCMAKE_BUILD_TYPE=Release `
-DBUILD_SHARED_LIBS=OFF `
-DCMAKE_CXX_FLAGS="-s USE_PTHREADS=0" `
-DCMAKE_EXE_LINKER_FLAGS="-s USE_PTHREADS=0" `
-GNinja
emmake ninja
cmake --install . --prefix "C:\Robotics\kdl_wasm\KDL\install_wasm"
# 或者使用 -G "MinGW Makefiles" 如果你安装了 MinGW
方案1先编译 KDL 为 WebAssembly
bash
# 1. 进入 KDL 源码目录
cd /path/to/orocos-kdl
# 2. 创建构建目录并编译为 WebAssembly
mkdir build_wasm && cd build_wasm
# 3. 使用 emcmake 配置
emcmake cmake .. \
-DCMAKE_INSTALL_PREFIX=../../kdl_wasm/KDL/install_wasm \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_CXX_FLAGS="-s USE_PTHREADS=0" \
-DCMAKE_EXE_LINKER_FLAGS="-s USE_PTHREADS=0"
# 4. 编译和安装
emmake make -j4
emmake make install

View File

@@ -0,0 +1,23 @@
一、步骤1安装构建工具
首先需要安装 ninja推荐
二、
cd C:\Robotics\orocos_kinematics_dynamics\orocos_kdl\build_wasm
# 清除之前的配置
Remove-Item * -Recurse -Force
# 重新配置,添加 Eigen3 路径
emcmake cmake .. `
-DCMAKE_INSTALL_PREFIX="C:\Robotics\kdl_wasm\KDL\install_wasm" `
-DCMAKE_BUILD_TYPE=Release `
-DBUILD_SHARED_LIBS=OFF `
-DCMAKE_CXX_FLAGS="-s USE_PTHREADS=0" `
-DCMAKE_EXE_LINKER_FLAGS="-s USE_PTHREADS=0" `
-DEIGEN3_INCLUDE_DIR="C:\Robotics\kdl_wasm\Eigen3" `
-GNinja
三、
# 或者使用 CMake 安装命令
cmake --install . --prefix "C:\Robotics\kdl_wasm\KDL\install_wasm"

View File

94
docs/build-logs/t.txt Normal file
View File

@@ -0,0 +1,94 @@
cd E:\Work\_wasm\smart-wasm-project
emcc src/math_utils.cpp src/smart_json_wrapper.cpp src/main.cpp `
>> -I./src `
>> -g4 `
>> -O0 `
>> --source-map-base http://localhost:8000/ `
>> -s WASM=1 `
>> -s EXPORTED_FUNCTIONS='["_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
>> -s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","ccall","cwrap","HEAPU8", "HEAPU16", "HEAPU32", "HEAP8", "HEAP16", "HEAP32", "HEAPF32", "HEAPF64"]' `
>> -s MODULARIZE=1 `
>> -s EXPORT_NAME='createSmartMathModule' `
>> -s ALLOW_MEMORY_GROWTH=1 `
>> -s ASSERTIONS=2 `
>> -s STACK_OVERFLOW_CHECK=2 `
>> -o public/wasm/smart_math.js
# 检查最新编译时间
$jsFile = Get-Item "public/wasm/smart_math.js" -ErrorAction SilentlyContinue
if ($jsFile) {
Write-Host "smart_math.js 最后修改时间: $($jsFile.LastWriteTime)" -ForegroundColor Yellow
}
# 如果文件太旧或有问题,重新编译
Write-Host "重新编译..." -ForegroundColor Cyan
emcc src/math_utils.cpp src/smart_json_wrapper.cpp src/main.cpp `
-I./src `
-Os `
-s WASM=1 `
-s EXPORTED_FUNCTIONS='["_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString"]' `
-s MODULARIZE=1 `
-s EXPORT_NAME='SmartMathModule' `
-s ALLOW_MEMORY_GROWTH=1 `
-o public/wasm/smart_simple.js
emcc src/math_utils.cpp src/smart_json_wrapper.cpp src/main.cpp `
-I./src `
-Os `
-s WASM=1 `
-s EXPORTED_FUNCTIONS='["_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","ccall","cwrap","HEAPU8", "HEAPU16", "HEAPU32", "HEAP8", "HEAP16", "HEAP32", "HEAPF32", "HEAPF64"]' `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s ALLOW_MEMORY_GROWTH=1 `
-o public/wasm/smart_math.js
# 开发调试版本 - 包含完整的调试信息
emcc src/math_utils.cpp src/smart_json_wrapper.cpp src/main.cpp `
-I./src `
-gsource-map `
-O0 `
-s WASM=1 `
-s WASM_BIGINT=1 `
-s USE_PTHREADS=0 `
-s FILESYSTEM=0 `
-s EXPORTED_FUNCTIONS='["_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' `
-s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","ccall","cwrap","HEAPU8","HEAPU16","HEAPU32","HEAP8","HEAP16","HEAP32","HEAPF32","HEAPF64","writeArrayToMemory","writeAsciiToMemory"]' `
-s MODULARIZE=1 `
-s EXPORT_NAME='createSmartMathModule' `
-s ALLOW_MEMORY_GROWTH=1 `
-s INITIAL_MEMORY=16777216 `
-s MAXIMUM_MEMORY=268435456 `
-s ASSERTIONS=2 `
-s STACK_OVERFLOW_CHECK=2 `
-s SAFE_HEAP=1 `
-s DEMANGLE_SUPPORT=1 `
-s ERROR_ON_UNDEFINED_SYMBOLS=0 `
-s STANDALONE_WASM=0 `
-s ENVIRONMENT='web,worker' `
-o public/wasm/smart_math_debug.js
PS E:\Work\_wasm\smart-wasm-project>
emcc src/math_utils.cpp src/smart_json_wrapper.cpp src/main.cpp -I./src -g4 -O0 --source-map-base http://localhost:8000/ -s WASM=1 -s EXPORTED_FUNCTIONS='["_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free","_main"]' -s EXPORTED_RUNTIME_METHODS='["UTF8ToString","stringToUTF8","ccall","cwrap","HEAPU8", "HEAPU16", "HEAPU32", "HEAP8", "HEAP16", "HEAP32", "HEAPF32", "HEAPF64"]' -s MODULARIZE=1 -s EXPORT_NAME='createSmartMathModule' -s ALLOW_MEMORY_GROWTH=1 -s ASSERTIONS=2 -s STACK_OVERFLOW_CHECK=2 -o public/wasm/smart_math.js
emcc: warning: please replace -g4 with -gsource-map [-Wdeprecated]
PS E:\Work\_wasm\smart-wasm-project> python -m http.server 8080