Jump to content
Kaiwen

Install System-AMS in Visual C++ 2008

Recommended Posts

 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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×