我正在使用Windows 10 64位计算机与Visual Studio Professional 2013,我想安装SystemC。我下载了SystemC 2.3.1,我尝试按照提供的“安装说明”进行操作,但它们有点过时了。
首先,它说“对于VS 2005及更高版本的Windows 7机器”,但我使用的是Windows 10,但我仍然试图遵循它。其次,由于此方法在VS2013中已更改,因此无法按照其中所述的方式包含src
和lib
文件。通过Tools->Options->Projects->VCC++
指令标签似乎没有全球设置。
现在,我能够成功地购买SystemC.sln解决方案。但是,当我尝试构建一个示例项目时,我收到以下错误:
链接:致命错误LNK1104:无法打开文件'C:\ Users \ Andrew \ Downloads \ systemc-2.3.1a \ systemc-2.3.1a \ msvc80 \ SystemC \ Debug.obj'
即使我认为我已经在项目属性中正确指定了src
和lib
目录。
谁能解释如何在Windows 10 x64上使用VS2013构建SystemC?
更新:如果您在Visual Studio中使用CMake,请检查Setting up a SystemC project with CMake: undefined reference to `sc_core
目前我没有安装MSVC2013,所以这里有适用于我的MSVC2017的步骤。
现在您可以创建一些测试SystemC项目。
现在是时候输入一些代码了。例如这个“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>
gets
在最新的MSVC中被从std
命名空间中删除,但实际上并不是必需的。所以只需打开systemc.h
并注释掉第120行:
// using std::gets;
sprintf
的错误将_CRT_SECURE_NO_WARNINGS
添加到预处理程序定义列表中
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 . . .
希望有所帮助