[英]Using SystemC in Visual Studio 2010
我是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);
}
我收到了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有關。 如何解決這個問題?
這主要與用於編譯SystemC庫(SystemC.lib)的項目和SystemC項目所使用的不同MS運行時庫有關。 使用MS編譯器,有4種不同的運行時庫:
似乎您使用了/ MDd來編譯SystemC.lib,但是使用了/ MTd來編譯SystemC項目。 您可以更正它:
從屬性頁中選擇配置屬性==> C / C ++ ==>代碼生成==>運行時庫==> Multithreaded-Debug-DLL(/ MDd)。
在這里可以找到類似的線程: Visual C ++中多個項目之間的鏈接器錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.