我正在使用带有Visual Studio Professional 2013的Windows 10 64位计算机,我想安装SystemC。我下载了SystemC 2.3.1,我尝试按照提供的“安装说明”进行操作,但它们稍微过时了。
首先,它说“对于VS 2005及更高版本的Windows 7机器”,但我使用的是Windows 10,但我仍然试图遵循它。其次,由于此方法在VS2013中已更改,因此无法按照此处所述的方式包含src
和lib
文件。似乎没有全局设置通过Tools->Options->Projects->VCC++
指示标签。
现在,我能够成功地修改SystemC.sln解决方案。但是,当我尝试构建示例项目时,我收到以下错误:
LINK:致命错误LNK1104:无法打开文件 'C:\ Users \用户安德鲁\下载\ SystemC的2.3.1a \ SystemC的2.3.1a \ msvc80 \ SystemC的\ Debug.obj'
即使我认为我已在项目属性中正确指定了src
和lib
目录。
任何人都可以解释如何在Windows 10 x64上使用VS2013构建SystemC吗?
答案 0 :(得分:6)
更新:如果您在Visual Studio中使用CMake,请检查Setting up a SystemC project with CMake: undefined reference to `sc_core
目前我没有安装MSVC2013,所以这里有适用于我的MSVC2017的步骤。
构建解决方案( F7 )
在控制台中,您可能会找到以下消息:
未知的编译器版本 - 请运行配置测试并报告结果
你可以忽略它们。解决方案应该构建没有错误:
==========构建:1成功,0失败,0最新,0跳过==========
因此,您将在systemc-2.3.1a \ msvc80 \ SystemC \ Debug
现在您可以创建一些测试SystemC项目。
在配置属性中 - > C / C ++ - >常规 - >其他包含目录
添加路径:\ systemc-2.3.1a \ src
在配置属性中 - > C / C ++ - >代码生成 - >运行时库
选择:多线程调试(/ MTd)
在配置属性中 - > C / C ++ - >语言 - >启用运行时类型信息
选择:是(/ GR)
在配置属性中 - > C / C ++ - >命令行 - >其他选项
输入:/ vmg
在配置属性中 - >链接器 - >一般 - >其他图书馆馆藏
添加路径到: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>
\ systemc-2.3.1a \ src \ systemc.h(120):错误C2039:'获取':不是'std'的成员
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 . . .
希望有所帮助