Kaiwen Posted March 5, 2018 Report Share Posted March 5, 2018 Hello everyone, I`m new in SystemC-AMS. I have met a problem with the building of systemc_ams.lib. Here is my software environment Software: Visual C++ 2008 Express Edition of Windows 10 SystemC.lib: systemC 2.3.0 vision downloading from http://www.coseda-tech.com/systemc-ams-proof-of-concept has already been set up.Output "hello world" in youtube example "SystemC installation at Visual studio 2010" runs correctly on my computer. SystemC_ams: systemc-ams-2.1 version downloading from COSEDA http://www.coseda-tech.com/systemc-ams-proof-of-concept. I have corrected the additional include directory and additional library directory in systemc_ams.vcproj and after press F7 I meet this problem: ... 1>sca_synchronization_alg.cpp 1>sca_synchronization_layer.cpp 1>Generating Code... 1>Compiling... 1>sca_synchronization_layer_process.cpp 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(216) : error C2440: 'initializing' : cannot convert from 'sc_core::sc_event_or_expr *' to 'sc_core::sc_event_or_list *' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(218) : error C2440: '=' : cannot convert from 'sc_core::sc_event_expr<T> *' to 'sc_core::sc_event_or_list *' 1> with 1> [ 1> T=sc_core::sc_event_or_list 1> ] 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(221) : error C2440: '=' : cannot convert from 'sc_core::sc_event_expr<T> *' to 'sc_core::sc_event_or_list *' 1> with 1> [ 1> T=sc_core::sc_event_or_list 1> ] 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(385) : error C2440: 'initializing' : cannot convert from 'sc_core::sc_event_or_expr *' to 'sc_core::sc_event_or_list *' 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(387) : error C2440: '=' : cannot convert from 'sc_core::sc_event_expr<T> *' to 'sc_core::sc_event_or_list *' 1> with 1> [ 1> T=sc_core::sc_event_or_list 1> ] 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(390) : error C2440: '=' : cannot convert from 'sc_core::sc_event_expr<T> *' to 'sc_core::sc_event_or_list *' 1> with 1> [ 1> T=sc_core::sc_event_or_list 1> ] 1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(393) : error C2100: illegal indirection 1>e:\program files (x86)\microsoft visual studio 9.0\systemc-ams-2.1\src\scams\impl\synchronization\sca_synchronization_layer_process.cpp(393) : error C2678: binary '|' : no operator found which takes a left-hand operand of type 'sc_core::sc_event_or_list' (or there is no acceptable conversion) 1> e:\program files (x86)\microsoft visual studio 9.0\systemc-2.3.0\src\sysc\kernel\sc_event.h(683): could be 'sc_core::sc_event_or_expr sc_core::operator |(sc_core::sc_event_or_expr,const sc_core::sc_event &)' [found using argument-dependent lookup] 1> e:\program files (x86)\microsoft visual studio 9.0\systemc-2.3.0\src\sysc\kernel\sc_event.h(691): or 'sc_core::sc_event_or_expr sc_core::operator |(sc_core::sc_event_or_expr,const sc_core::sc_event_or_list &)' [found using argument-dependent lookup] 1> e:\program files (x86)\microsoft visual studio 9.0\systemc-2.3.0\src\sysc\kernel\sc_event.h(237): or 'sc_core::sc_event_expr<T> sc_core::sc_event_or_list::operator |(const sc_core::sc_event &) const' 1> with 1> [ 1> T=sc_core::sc_event_or_list 1> ] 1> e:\program files (x86)\microsoft visual studio 9.0\systemc-2.3.0\src\sysc\kernel\sc_event.h(238): or 'sc_core::sc_event_expr<T> sc_core::sc_event_or_list::operator |(const sc_core::sc_event_or_list &) const' 1> with 1> [ 1> T=sc_core::sc_event_or_list 1> ] 1> while trying to match the argument list '(sc_core::sc_event_or_list, sca_core::sca_implementation::event_and_list2ev *)' 1>sca_tabular_trace.cpp 1>sca_tabular_trace_file.cpp ... The compete Output in Visual studio has been set as attach named error.txt. Do you have any ideas about my problems? Thanks in advance. Kaiwen error.txt Quote Link to comment Share on other sites More sharing options...
maehne Posted March 6, 2018 Report Share Posted March 6, 2018 Even though the INSTALL instructions for the SystemC AMS PoC mentions only Visual C++ 8.0/9.0 as well as SystemC 2.2, I would recommend you that you to try to build against the most recent release of SystemC 2.3.2 using either Visual Studio 2015 or 2013. Recent Visual Studio versions should still be able to open and convert the old provided solution files. Compared to SystemC 2.3.0, SystemC 2.3.2 fixed many errors, among them an issue with the sc_event_or_list type mentioned in your error log. Recent Visual Studio version are much more conformant to the ISO/IEC C++ standard. As I am using mostly the GNU and Clang toolchains on non-Windows platforms, I cannot help you further at the moment. Quote Link to comment Share on other sites More sharing options...
Kaiwen Posted March 7, 2018 Author Report Share Posted March 7, 2018 Hallo Maehne, Thank you for the reply, thank helps me a lot. I have tried many times and I can now run system_ams 2.1 and systemC 2.3.2 successfully both in visual studio 2015 and visual studio 2017. One important thing in my case is that, the Runtime Library must be chosen as "Multi-threaded Debug DLL (/MDd) "in the property setting(Project->Property->c/c++->Code Generation->Runtime Library), when the systemc.lib is generated. Quote Link to comment Share on other sites More sharing options...
maehne Posted March 8, 2018 Report Share Posted March 8, 2018 I am happy I could help and that you can now use the SystemC and SystemC AMS libraries on Visual Studio! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.