专栏目录
simucpp:C++搭建微分方程求解器框架(重写simulink)
simucpp系列教程(1)安装教程
simucpp系列教程(2)例程解析(第一部分)
simucpp系列教程(3)例程解析(第二部分)
simucpp系列教程(4)使用教程与程序说明
simucpp系列教程(5)各模块的简要介绍
simucpp系列教程(6)函数文档
由于simucpp及其依赖库的更新改动较大,下面的教程我还没来得及更新或补充,可能不适用于最新的simucpp版本,仅供参考。 simucpp使用的是最普通的cmake构建工具,不需要包管理器。下面的教程就是使用cmake配置的教程,更好的教程可以参考EGE的: (二)EGE安装与配置 -CSDN博客
当然对新手来说有一种最简单的方法,就是直接把所有代码文件都加入到IDE里(比如visual studio)一起编译即可,下面的教程除了要知道需要哪些依赖库以外完全可以不用看。下面介绍的方法是分别编译成库再链接的过程。
编译环境准备
项目使用 cmake 构建,cmake教程和C++的编译环境搭建推荐一个B站博主的视频:
基于VSCode和CMake实现C/C++开发 | Linux篇
手把手教会VSCode的C++环境搭建,多文件编译,Cmake,json调试配置( Windows篇)
目前已在Windows系统的 visual studio 2019,qt creator,vs code,和Linux系统的 vs code 中测试过。其他编译器暂未尝试。推荐几个自认为比较好的cmake教程
modern cmake
Modern CMake is like inheritance
CMake: Public VS Private VS Interface
安装依赖库 matplotlib-cpp
原作者代码仓库 https://github.com/lava/matplotlib-cpp
经过我部分修改后用于simucpp的代码仓库 https://gitee.com/xd15zhn/matplotlibcpp
目前仅绘制波形图功能使用了该依赖库,如果不需要绘制波形图,则可以在CMakeLists.txt
中禁用该库。(或者自己改源代码换成其它的库)
matplotlibcpp在linux上安装及简单使用
安装依赖库 zhnmat
代码仓库 https://gitee.com/xd15zhn/zhnmat
目前仅有矩阵模块使用了该依赖库,如果不使用矩阵模块,则可以在CMakeLists.txt
中禁用该库。(或者自己改源代码换成其它的库)
编译项目
出于多次使用的考虑,从V1.5.4版本开始将编译过程分成两步,第一步生成静态链接库,第二步将库链接到自己的程序中,甚至可以将simucpp复制到c++的安装目录中,这样在各个项目中都可以使用。
visual studio
网上查查教程,比如:利用 cmake 工具生成 Visual Studio 工程文件。
qt creator
qt creator自带cmake所以配置起来简单的多。打开CMakeLists.txt
文件即可。
命令行(vs code)
未完待续。。。
第一个项目
新建一个文件夹,命名为sim1
(名称任意),新建CMakeLists.txt
文件(大小写和后缀名必须严格对应)和main.cpp
(名称任意)文件,新建build
(名称任意)文件夹,如下图所示(示例)。上图为simucpp文件夹,下图为新建的sim1文件夹。
在CMakeLists.txt
文件中输入(复制)如下内容:
cmake_minimum_required(VERSION 3.12)
project(sim)
set(CMAKE_BUILD_TYPE debug)
set(SIMUCPP_DIR D:/cppcode/simucpp) # 这里输入simucpp文件夹的位置
set(ZHNMAT_DIR D:/cppcode/zhnmat) # 这里输入zhnmat文件夹的位置
set(PYTHON_DIR D:/python) # 这里输入python目录的位置
add_executable(${CMAKE_PROJECT_NAME}
${PROJECT_SOURCE_DIR}/main.cpp
)
target_link_libraries(${CMAKE_PROJECT_NAME}
${SIMUCPP_DIR}/build/libsimucpp.a
${ZHNMAT_DIR}/build/libzhnmat.a
${PYTHON_DIR}/libs/_tkinter.lib
${PYTHON_DIR}/libs/python3.lib
${PYTHON_DIR}/libs/python39.lib
)
target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC
${SIMUCPP_DIR}/inc
${ZHNMAT_DIR}
# ${MPLT_DIR}
)
进入build
文件夹,使用cmake或者命令行进行编译。windows的mingw命令行为cmake .. -G "MinGW Makefiles"
和mingw32-make
,Linux的命令行为cmake ..
和make
。
如果你熟悉cmake的话也可自由修改。