Visual studio 2010 在VisualStudio2010中使用SystemC

Visual studio 2010 在VisualStudio2010中使用SystemC,visual-studio-2010,systemc,Visual Studio 2010,Systemc,我是SystemC的新手,我刚刚编译了它,以便在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("HEL

我是SystemC的新手,我刚刚编译了它,以便在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);
}
#包括
SC_模块(系统测试){
主任(系统测试){
}
void说你好{

cout这主要与用于编译SystemC库(SystemC.lib)的项目和您的SystemC项目的不同MS运行库有关。使用MS编译器,有4个不同的运行库:

  • 多线程(/MT)-->LIBCMT.lib
  • 多线程调试(/MTd)->LIBCMTD.lib
  • 多线程DLL(/MD)-->MSVCRT.lib、MSVCPRT.lib+MSVCR100.DLL、MSVCP100.DLL
  • 多线程调试DLL(/MDd)-->MSVCRTD.lib、MSVCPRTD.lib+MSVCR100D.DLL、MSVCP100D.DLL
您似乎使用了/MDd来编译SystemC.lib,但您正在使用/MTd来编译SystemC项目。您可以更正它:

从属性页中选择配置属性==>C/C++==>代码生成==>运行时库==>多线程调试DLL(/MDd)


这里可以找到一个类似的线程:

这主要与用于编译SystemC库(SystemC.lib)和SystemC项目的project的不同MS运行库有关。使用MS编译器,有4个不同的运行库:

  • 多线程(/MT)-->LIBCMT.lib
  • 多线程调试(/MTd)->LIBCMTD.lib
  • 多线程DLL(/MD)-->MSVCRT.lib、MSVCPRT.lib+MSVCR100.DLL、MSVCP100.DLL
  • 多线程调试DLL(/MDd)-->MSVCRTD.lib、MSVCPRTD.lib+MSVCR100D.DLL、MSVCP100D.DLL
您似乎使用了/MDd来编译SystemC.lib,但您正在使用/MTd来编译SystemC项目。您可以更正它:

从属性页中选择配置属性==>C/C++==>代码生成==>运行时库==>多线程调试DLL(/MDd)

类似的线程可以在此处找到:

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)