安装SystemC for VS2013

时间:2017-02-01 22:01:05

标签: visual-studio-2013 systemc

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

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

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

  

LINK:致命错误LNK1104:无法打开文件   'C:\ Users \用户安德鲁\下载\ SystemC的2.3.1a \ SystemC的2.3.1a \ msvc80 \ SystemC的\ Debug.obj'

即使我认为我已在项目属性中正确指定了srclib目录。

任何人都可以解释如何在Windows 10 x64上使用VS2013构建SystemC吗?

1 个答案:

答案 0 :(得分: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
  2. 下载最新的SystemC
  3. 在Visual Studio中打开systemc-2.3.1a \ msvc80 \ SystemC \ SystemC.sln
  4. Visual Studio将提供更新解决方案,单击“确定”。您可以忽略带警告的报告。
  5. 在VS菜单栏中将配置设置为“Debug”“Win32”。 (在我的情况下,默认情况下已被选中)
  6. 构建解决方案( F7

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

      

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

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

      

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

  7. 因此,您将在systemc-2.3.1a \ msvc80 \ SystemC \ Debug

  8. 中安装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

    9. 现在是时候输入一些代码了。例如,这个“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'的成员

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

        //    using std::gets;
        
        1. 如果您收到有关sprintf
        2. 的错误消息

          _CRT_SECURE_NO_WARNINGS添加到预处理程序定义列表

          1. 再次构建。无需调试即可运行( Ctrl + F5 )。您应该在控制台上看到以下介绍测试:
          2.     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 . . .
            

            希望有所帮助