安装SystemC for VS2013

问题描述 投票:3回答:1

我正在使用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?

visual-studio-2013 systemc
1个回答
6
投票

更新:如果您在Visual Studio中使用CMake,请检查Setting up a SystemC project with CMake: undefined reference to `sc_core

目前我没有安装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;
}

stdafx.h添加:

 #include <systemc.h>
  1. 构建项目,它将失败: \ systemc-2.3.1a \ src \ systemc.h(120):错误C2039:'获取':不是'std'的成员

gets在最新的MSVC中被从std命名空间中删除,但实际上并不是必需的。所以只需打开systemc.h并注释掉第120行:

//    using std::gets;
  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 . . .

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.