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

首先,它说“适用于 Windows 7 机器上的 VS 2005 及更高版本”,但我使用的是 Windows 10,但我仍然试图遵循它。其次,由于此方法在 VS2013 中已更改,因此不能按照那里所述的方式包含 srclib 文件。通过 Tools->Options->Projects->VCC++ 方向选项卡似乎不再有全局设置。

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



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

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

最佳答案

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

目前我没有安装 MSVC2013,所以这里是对我有用的 MSVC2017 的步骤。

  • http://accellera.org/downloads/standards/systemc
  • 下载最新的 SystemC
  • 在 Visual Studio 中打开 systemc-2.3.1a\msvc80\SystemC\SystemC.sln
  • Visual Studio 将提供更新解决方案,单击确定。您可以忽略带有警告的报告。
  • 在 VS 菜单栏中将配置设置为“调试”“Win32”。 (在我的例子中已经默认选择了)
  • 构建解决方案 (F7)

    在控制台中,您可能会发现以下消息:



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

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

    现在您可以创建一些测试 SystemC 项目。
  • File->New -> Project -> Win32 Console 应用程序
  • 在解决方案资源管理器中右键单击项目 -> 属性
  • 在配置属性 -> C/C++ -> 常规 -> 附加包含目录

    添加路径到:\systemc-2.3.1a\src
  • 在配置属性 -> C/C++ -> 代码生成 -> 运行库

    选择:多线程调试 (/MTd)
  • 在配置属性 -> C/C++ -> 语言 -> 启用运行时类型信息

    选择:是 (/GR)
  • 在配置属性 -> C/C++ -> 命令行 -> 附加选项

    类型:/vmg
  • 在 Configuration Properties -> Linker -> General -> Additional Library Directories

    添加路径到:systemc-2.3.1a\msvc80\SystemC\Debug
  • 在配置属性 -> 链接器 -> 输入 -> 附加依赖项

    添加: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>
    
  • 构建项目,它将失败:


  • 在最新的 MSVC 中,gets 已从 std 命名空间中删除,但实际上并不是必需的。
    所以只需打开 systemc.h 并注释掉第 120 行:
    //    using std::gets;
    
  • 如果你有关于 sprintf
  • 的错误

    _CRT_SECURE_NO_WARNINGS 添加到预处理器定义列表中
  • 再次构建。无需调试即可运行 (Ctrl+F5)。您应该在控制台上看到以下介绍测试:



  • 希望有帮助

    关于visual-studio-2013 - 为 VS2013 安装 SystemC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41990606/

    10-13 09:22