安装SystemC for VS2013

Jav*_*492 4 systemc visual-studio-2013

我正在使用Windows 10 64位计算机与Visual Studio Professional 2013,我想安装SystemC.我下载了SystemC 2.3.1并尝试按照提供的"安装说明"进行操作,但它们稍微过时了.

首先,它说"对于VS 2005及更高版本的Windows 7机器",但我使用的是Windows 10,但我仍然试图遵循它.其次,由于此方法在VS2013中已更改,因此无法按照此处所述的方式包含srclib文件.似乎没有全局设置通过Tools->Options->Projects->VCC++路线选项卡.

现在,我能够成功地购买SystemC.sln解决方案.但是,当我尝试构建一个示例项目时,我收到以下错误:

链接:致命错误LNK1104:无法打开文件'C:\ Users\Andrew\Downloads\systemc-2.3.1a\systemc-2.3.1a\msvc80\SystemC\Debug.obj'

即使我认为我已经正确指定了项目属性中的srclib目录.

谁能解释如何在Windows 10 x64上使用VS2013构建SystemC?

ran*_*dom 7

目前我没有安装MSVC2013,所以这里有适用于我的MSVC2017的步骤.

  1. http://accellera.org/downloads/standards/systemc下载最新的SystemC
  2. 在Visual Studio中打开systemc-2.3.1a\msvc80\SystemC\SystemC.sln
  3. Visual Studio将提供更新解决方案,单击确定.您可以忽略带警告的报告.
  4. 在VS菜单栏中将配置设置为"Debug""Win32".(在我的情况下,默认已经选中)
  5. 构建解决方案(F7)

    在控制台中,您可能会找到以下消息:

    未知的编译器版本 - 请运行配置测试并报告结果

    你可以忽略它们.解决方案应该构建没有错

    ==========构建:1成功,0失败,0最新,0跳过==========

  6. 因此,您将在systemc-2.3.1a\msvc80\SystemC\Debug中拥有SystemC.lib

现在您可以创建一些测试SystemC项目.

  1. 文件 - >新建 - >项目 - > Win32控制台应用程序
  2. 右键单击解决方案资源管理器中的项目 - >属性
  3. 在配置属性 - > C/C++ - >常规 - >附加包含目录中

    添加路径到:\ systemc-2.3.1a\src

  4. 在配置属性 - > C/C++ - >代码生成 - >运行时库中

    选择:多线程调试(/ MTd)

  5. 在配置属性 - > C/C++ - >语言 - >启用运行时类型信息

    选择:是(/ GR)

  6. 在配置属性 - > C/C++ - >语言 - >命令行 - >其他选项中

    输入:/ vmg

  7. 在配置属性 - >链接器 - >常规 - >其他库目录中

    添加路径到:systemc-2.3.1a\msvc80\SystemC\Debug

  8. 在配置属性 - >链接器 - >输入 - >其他依赖项中

    添加:SystemC.lib

现在是时候输入一些代码了.例如这个"Hello world":

#include "stdafx.h"

struct test_module : sc_module {
    SC_HAS_PROCESS(test_module);

    test_module(::sc_core::sc_module_name) {
        SC_THREAD(test_thread);
    }

    sc_signal<std::string>  message{ "message" };

    void test_thread() {
        message.write("Hello world!");
        wait(1, SC_NS);
        cout << message.read() << endl;
        sc_stop();
    }
};

int sc_main(int argc, char** argv)
{
    test_module tmod{ "tmod" };
    sc_start();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

另外stdafx.h:

 #include <systemc.h>
Run Code Online (Sandbox Code Playgroud)
  1. 构建项目,它将失败:

    \ systemc-2.3.1a\src\systemc.h(120):错误C2039:'获取':不是'std'的成员

getsstd在最新的MSVC中从名称空间中删除了,但它并不是真正需要的.所以只需打开systemc.h并注释掉第120行:

//    using std::gets;
Run Code Online (Sandbox Code Playgroud)
  1. 万一你有错误 sprintf

添加_CRT_SECURE_NO_WARNINGS到预处理器定义列表

  1. 再建一次.运行时不调试(Ctrl+F5).您应该在控制台上看到以下介绍测试:
    SystemC 2.3.1-Accellera --- Feb  1 2017 14:43:06
    Copyright (c) 1996-2014 by all Contributors,
    ALL RIGHTS RESERVED

    Hello world!

    Info: /OSCI/SystemC: Simulation stopped by user.
    Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

希望有所帮助