Windows上开发有个好处,就是原生系统会比较方便,也更为流畅。我没有原生安装Linux的环境,所以每次还要开虚拟机比较麻烦。考虑到后面可能会在windows和linux两个平台交叉开发,因此这里配置环境使用MingW64编译器,而非常见的Visual Studio。
1、安装编译器(MinGW)
(1)在MSYS2官网(https://www.msys2.org)下载安装程序MSYS2,运行并开始安装。
(2)安装完毕后,打开ucrt64终端,安装MinGW-w64工具链
#在MSYS2中安装
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make
(3)将C:\msys64\mingw64\bin加入系统PATH中
(4)我指定的安装目录是在C:\msys64,默认的主目录是C:\msys64\home\qint 。
2、编译SystemC库
(1)从accellera官网(https://www.accellera.org/downloads/standards/systemc)下载,我这里下载的是System 3.0.2版本。
(2)把下载的包拷贝到C:\msys64\home\qint中,打开mingw64终端(位于C:\msys64目录下),进行解压
tar -xzf systemc-3.0.2.tar.gz
cd systemc-3.0.2
(3)编译安装
原本用传统的make进行编译,但死活有问题,所以改用cmake
# 在MSYS2 MINGW64终端中
cd systemc-3.0.2
# 创建CMake构建目录
mkdir build-cmake && cd build-cmake
# 生成构建文件
cmake .. \
-G "MinGW Makefiles" \
-DCMAKE_INSTALL_PREFIX=/mingw64/systemc \
-DCMAKE_CXX_STANDARD=17 \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=Release
# 编译安装
cmake --build . -- -j4
cmake --install .
在系统环境变量中添加:
SYSTEMC_HOME: C:\msys64\mingw64\systemc
(4)测试验证
编写测试程序如下,文件名hello.cpp
#include <systemc.h>
SC_MODULE(HelloWorld) {
SC_CTOR(HelloWorld) {
SC_METHOD(say_hello);
}
void say_hello() {
std::cout << "Hello from SystemC on Windows!" << std::endl;
std::cout << "Simulation time: " << sc_time_stamp() << std::endl;
}
};
int sc_main(int argc, char* argv[]) {
HelloWorld hello("hello");
sc_start(1, SC_NS);
return 0;
}
用如下命令编译:
g++ -std=c++17 -IC:/msys64/mingw64/systemc/include -LC:/msys64/mingw64/systemc/lib -o hello.exe hello.cpp -lsystemc -lpthread
运行:
./hello
输出:
SystemC 3.0.2-Accellera --- Dec 26 2025 12:14:49
Copyright (c) 1996-2025 by all Contributors,
ALL RIGHTS RESERVED
Hello from SystemC on Windows!
Simulation time: 0 s
需要注意的是,尽管编译出来的文件为hello.exe,但并不能直接在windows命令行中直接运行,还是需要在mingw64终端中运行。