我是SystemC的新手,我刚刚使用this教程将其编译为与VS2010一起使用。但是当我尝试调试以下程序时:
#include <systemc.h>
SC_MODULE (systemcTest) {
SC_CTOR (systemcTest) {
}
void say_hello() {
cout << "Hello World.\n";
}
};
int sc_main(int argc, char* argv[]) {
systemcTest hello("HELLO");
hello.say_hello();
return(0);
}
我遇到了类似于以下错误的51个错误:
error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) already defined in SystemC.lib(sc_simcontext.obj) \msvcprtd.lib(MSVCP100D.dll)
大多数与msvcprtd.lib,libcmtd.lib相关。 如何解决这个问题?
答案 0 :(得分:0)
这主要与用于编译SystemC库(SystemC.lib)和SystemC项目的项目的不同MS运行时库有关。使用MS编译器,有4种不同的运行时库:
您似乎使用/ MDd编译SystemC.lib,但是您使用/ MTd编译SystemC项目。你可以纠正它:
从属性页面选择配置属性==&gt; C / C ++ ==&gt;代码生成==&gt;运行时库==&gt;多线程调试DLL(/ MDd)。
可在此处找到类似的主题:Linker errors between multiple projects in Visual C++