64 Bit Window Binary compiled with VS2013 (Hardfork v0.15.0)

in #steemit7 years ago (edited)

I am not sure how many people are still interested in the window version of Steemd. I have spent a lot of time to get it to compile with VS2013. Here is some information that I gathered during the process. I hope some coder is able to correct these codes @ source and make it VS2013 compliance. Otherwise, it will be hard to have the next window version of Steemd,
at least not VS2013 compiled.

Anyways, when I was compiling with VS2013,
I encountered the following errors:

The errors were caused by this commit adding fixed_string definition on Bump fc#476.

I had to make some changes in order for it to complied.

  • 1). I had to apply the same changed that was on v0.14.2
    • I had a pull request on this, but I closed it after I got these errors on v0.14.3.

* 2). I had to revert the codes on these three files: flat.hpp, flat_fwd.hpp andvariant.hpp that is from adding fixed_string definition
* I didn't want to revert the code back, but the hardfork was happening and I was not able to find a fix besides unchanging the codes. I believe this change does not affect any newly add-on features.

  • 3.) I have to revert back Update mining stats display ticket#282 # 484, and patched the division by zero bug.
    • There was a division by zero bug on witness.cpp reported by xiangxn, and it was never merged to the develop or the master branch. Window version of steemd.exe will crash after it synced up if not patched. All previous release window binary was patched, included @bitcube's.

I have been running this compiled version since the hardfork. It is very stable.
I hope someone has a better solution to fix these errors.

Here is the binary if anyone is interested.
https://github.com/alphab3ta/steem/releases

*UPDATE: # 2). NO NEED TO REVERT CODES. Just change a total of four line of codes.
To get rid of fc::raw::unpack ambiguous call error.
I change the flat_fwd.hpp line# 19, and 20
from:

  line#19     template<typename Stream, typename K, typename... V>
  line#20     void unpack( Stream& s, flat_map<K,V...>& value ) ;

to

  line#19    template<typename Stream, typename K, typename V, typename... A>
  line#20    void unpack( Stream& s, flat_map<K,V,A...>& value ) ;

to match flat.hpp line# 43 and 44:

  line#43    template<typename Stream, typename K, typename V, typename... A>
  line#44    inline void unpack( Stream& s, flat_map<K,V,A...>& value ) 

To get rid of fc::from_variant ambiguous call error.
I change the variant.hpp line# 93, and 94
from:

  line#93    template<typename K, typename... T>
  line#94    void from_variant( const variant& var, fc::flat_map<K,T...>& vo );

to:

  line#93   template<typename K, typename T, typename... A>
  line#94   void from_variant( const variant& var, fc::flat_map<K,T,A...>& vo );

to match flat.hpp line# 117 and 118:

  line#117   template<typename K, typename T, typename... A>
  line#118   void from_variant( const variant& var,  flat_map<K, T, A...>& vo )

This may be a better solution. It keeps the original commit's adding fixed_string definition intention.

Sort:  

Great! Glad to know you solved the issues (I was unable to help much).

Thanks @abit.
Well, the problem was the commit adding fixed_string definition. I have pointed out the lines on Github flat.hpp line44, flat_fwd.hpp line20 and variant.hpp line 94. Those changes cause the ambiguous call to overloaded function. I decide to revert back to the previous codes to get rid of the errors.

I will try it thank you.

This post has been linked to from another place on Steem.

Learn more about and upvote to support linkback bot v0.5. Flag this comment if you don't want the bot to continue posting linkbacks for your posts.

Built by @ontofractal

cool thanks upvoted back

Good job @alphabeta , will check this #vs2013 out later. Will follow you bro. Hope you follow back.
/Best regards @mrstaf