当前位置: 首页 > news >正文

chili3d调试笔记3 加入c++ 大模型对话方法 cmakelists精读

加入

#include <emscripten/bind.h>
#include <emscripten/val.h>

 

#include <nlohmann/json.hpp>

怎么加包

函数直接用emscripten::function,如:

emscripten::function("send_to_llm", &send_to_llm);
set (CMAKE_CXX_STANDARD 17)
set (TARGET chili-wasm)
set (CMAKE_CONFIGURATION_TYPES Debug;Release)
set (CMAKE_NINJA_FORCE_RESPONSE_FILE 1 CACHE INTERNAL "")

get_filename_component(SOURCE_ROOT_DIR ${CMAKE_SOURCE_DIR} DIRECTORY)
set(CMAKE_INSTALL_PREFIX "${SOURCE_ROOT_DIR}/packages/chili-wasm/lib")set (OcctToolkits# FoundationClassesTKernel TKMath# ModelingData TKG2d TKG3d TKGeomBase TKBRep# ModelingAlgorithmsTKGeomAlgo TKTopAlgo TKPrim TKBO TKBool TKHLR TKFillet TKOffset TKFeat TKMesh TKShHealing# VisualizationTKService TKV3d# ApplicationFrameworkTKCDF TKLCAF TKCAF TKStdL TKStd TKVCAF TKBin TKBinL TKBinXCAF# DataExchangeTKDE TKXSBase TKXCAF TKDESTEP TKDEIGES
)

set (OcctUsedPackages)
foreach(toolkit ${OcctToolkits})file (STRINGS build/occt/src/${toolkit}/PACKAGES OcctPackages)list (APPEND OcctUsedPackages ${OcctPackages})
endforeach()
list (REMOVE_DUPLICATES OcctUsedPackages)set (OcctSourceFolders)
set (OcctIncludeDirs)
foreach(package ${OcctUsedPackages})if (NOT package STREQUAL "")list (APPEND OcctSourceFolders build/occt/src/${package}/*.c*)list (APPEND OcctIncludeDirs build/occt/src/${package})endif()
endforeach()

 


set (ChiliWasmSourcesFolder src)
file (GLOBChiliWasmSourceFiles CONFIGURE_DEPENDS${ChiliWasmSourcesFolder}/*.hpp${ChiliWasmSourcesFolder}/*.cpp
)
source_group ("Sources" FILES ${ChiliWasmSourceFiles})
source_group ("OCCT" FILES ${OcctSourceFiles})


if (${EMSCRIPTEN})add_library(occt STATIC ${OcctSourceFiles})target_include_directories (occt PUBLIC ${OcctIncludeDirs} )target_compile_options (occt PUBLIC$<$<CONFIG:Release>:-Os>$<$<CONFIG:Release>:-flto>$<IF:$<CONFIG:Release>,-sDISABLE_EXCEPTION_CATCHING=1,-sDISABLE_EXCEPTION_CATCHING=0>-DOCCT_NO_PLUGINS)add_executable (${TARGET} ${ChiliWasmSourceFiles})target_include_directories (${TARGET} PUBLIC ${OcctIncludeDirs})target_compile_options (${TARGET} PUBLIC$<$<CONFIG:Release>:-Os>$<$<CONFIG:Release>:-flto>$<IF:$<CONFIG:Release>,-sDISABLE_EXCEPTION_CATCHING=1,-sDISABLE_EXCEPTION_CATCHING=0>)target_link_libraries(${TARGET} PUBLIC occt)target_link_options (${TARGET} PUBLIC$<IF:$<CONFIG:Release>,-Os,-O0>$<IF:$<CONFIG:Release>,-flto,-fno-lto>$<IF:$<CONFIG:Release>,-sDISABLE_EXCEPTION_CATCHING=1,-sDISABLE_EXCEPTION_CATCHING=0>-sMODULARIZE=1-sEXPORT_ES6=1-sALLOW_MEMORY_GROWTH=1-sMAXIMUM_MEMORY=4GB-sENVIRONMENT="web"--bind--emit-tsd "${TARGET}.d.ts")install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_PREFIX})install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.wasm DESTINATION ${CMAKE_INSTALL_PREFIX})install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.d.ts DESTINATION ${CMAKE_INSTALL_PREFIX})endif ()

.为什么 target_link_libraries(${TARGET} PRIVATE nlohmann_json::nlohmann_json)要在if (${EMSCRIPTEN})里,find_package(nlohmann_json CONFIG REQUIRED)不用

 不写c++了,他这个项目要加上我的c++代码,每次我得从头编译一次occt

写typescripe吧

要不然就要单独编译看看行不行

 

http://www.xdnf.cn/news/13033.html

相关文章:

  • PY32F003+TIM+外部中断实现对1527解码
  • 【Test Test】灰度化和二值化处理图像
  • 6TOPS算力NPU加持!RK3588如何重塑8K显示的边缘计算新边界
  • 嵌入式音视频开发指南:从MPP框架到QT实战全解析
  • 3D 视觉赋能仓储精准高效:ID Logistics 与 Stereolabs 的创新合作之旅
  • Java开发中的常用注解
  • 字符串系列一>最长回文子串
  • 给予FLUX更好的控制:FLUX.1-dev-ControlNet-Union-Pro-2.0
  • Redis——网络模型之IO讲解
  • 大模型微服务架构模块实现方案,基于LLaMA Factory和Nebius Cloud实现模型精调的标准流程及代码
  • Android——动画
  • IPTV电视信息发布直播点播系统:营造数字化个性化融合化多媒体IPTV电视信息发布平台
  • 预训练与微调:大模型如何“学习知识”?
  • Python 网络爬虫基础理论与实战指南
  • 【每日八股】复习计算机网络 Day1:TCP 的头部结构 + TCP 确保可靠传输 + TCP 的三次握手
  • 【漫话机器学习系列】209.均值的标准误差(Standard Error of the Mean)
  • 完整的 .NET 6 分布式定时任务实现(Hangfire + Redis 分布式锁)
  • 故障诊断常用算法
  • 2025妈妈杯数学建模D题完整分析论文
  • Kubernetes Pod 调度策略:从基础到进阶
  • java面向对象09:方法的重写
  • PyTorch入门------卷积神经网络
  • TCP/IP和UDP协议的发展历程
  • POSIX 信号量(Semaphore)
  • MacOS怎么显示隐藏文件
  • Vue3 实战:打造多功能旅游攻略选项卡页面
  • 记录学习的第二十九天
  • unity TEngine学习记录3
  • 精准计量+AI管控——安科瑞助力高校水电管理数字化转型
  • C#插件与可扩展性