C/C++部署
这里介绍了如何将生成的代码部署到C/C++环境中.
注意
包含生成的源码文件以及链接动态库或静态库即可调用生成代码. 调用生成代码时需注意:
- 调用平台及编译器需与代码生成中的option.platform保持一致
- 当调用的平台为Linux/Mac时, 需要链接math库 (-lm) , 以使用sin, cos, tan, sqrt等函数
- 当调用平台为Windows时, 需要iphlpapi链接 (-liphlpapi, 或者在Visual Studio中添加iphlpapi.lib), 以获取mac地址等信息
以vehicle为例, 假设platform为'linux-x86_64-gcc', lib_type为'static', 代码目录结构如下:
working_dir/
├── vehicle/
│ ├── vehicle_prob.c
│ ├── vehicle_prob.h
│ ├── vehicle_solver.h
│ ├── libvehicle_solver_static.a
├── vehicle_demo.cpp
.
编译与运行
使用CMake
以下为使用静态链接库编译一个demo (vehicle_demo.cpp) 的CMake片段:
CMakeLists.txt
# ${VEHICLE_CODEGEN_DIR} is the dir of the generated code
set(VEHICLE_CODEGEN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vehicle)
# ${LIBS} is the required libs (math or iphlpapi)
set(LIBS m)
add_executable(vehicle_demo vehicle_demo.cpp ${VEHICLE_CODEGEN_DIR}/vehicle_prob.c)
target_include_directories(vehicle_demo PRIVATE ${VEHICLE_CODEGEN_DIR})
target_link_libraries(vehicle_demo ${VEHICLE_CODEGEN_DIR}/libvehicle_solver_static.a ${LIBS})