Kaiwen 0 Report post 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 Share this post Link to post Share on other sites
maehne 67 Report post 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. Share this post Link to post Share on other sites
Kaiwen 0 Report post 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. Share this post Link to post Share on other sites
maehne 67 Report post 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! Share this post Link to post Share on other sites