SystemC的开发环境配置(Windows)

       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终端中运行。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容