I am not a c++ programmer either.
I look at @bitcube's original source and modified accordingly.
On node cpp line 4221
changeg from: FC_CAPTURE_AND_LOG (())
to: FC_CAPTURE_AND_RETHROW()
after that you will encounter few more issues, and more code modification before its able to compile.
Looks like that change is made by me, which is to address a node stuck issue. I'm not sure why it doesn't compile on vs though. Perhaps just need to add a whatever variable to the inner
(())
, for example make itFC_CAPTURE_AND_LOG( (_user_agent_string) )
. Need testing.//Update: after made above change, at least the project still compiles in Ubuntu. I have no VS env, so need your help to test out.
I will test it when I can.
Hi @abit,
I did a test with above code
FC_CAPTURE_AND_LOG( (_user_agent_string) )
, it compiled fine with VS2013. But after it fully syncs, it crashed, not sure why.I would like to ask you a different question.
when I was compiling cli_wallet, I got
error C2593: 'operator <' is ambiguous
which is caused by found using ADL on ip.hpp(60).
F:\winsteem\steem\libraries\fc\include\fc/network/ip.hpp(60): could be 'bool fc::ip::operator <(const fc::ip::endpoint &,const fc::ip::endpoint &)' [found using argument-dependent lookup] while trying to match the argument list '(const fc::ip::address, const fc::ip::address)'
.I try to overload the operator by adding a line
friend bool operator<(const address& a, const address& b);
,it gives me different error LNK2019 & 2020 unresolved externals. So I end up omitting line 60 from the ip.hpp file. then it compiles without issues.
The question for you is what is the best remedy for this error?
I'm replying here due to reached maximum nested level. Sorry for the late reply.
Crash every time after fully synced? Logs and/or core dump etc would be useful.
It seems that in the
cli_wallet
code somewhere there is a comparison between twoaddress
objects, butclass address
lack of aoperator <
. Tryfriend bool operator<(const address& a, const address& b);
toclass address
, andbool operator<( const address& a, const address& b ) { return uint32_t(a) < uint32_t(b); }
Update2:
Thank you @abit. All the below code change compiled without error.
Except the latest commit. It has 7 error:
4 reference to raw.hpp line 294:
c2668: fc::raw::unpack : ambiguous call to overload function
and 3 reference to variant.hpp line53:
c2668 fc::from_variant : abmiguous call to overload funciotn
I don't think it is related to the code change.
"raw.hpp line 294" and "variant.hpp line53" don't contain code in my repository. Would you please share us the whole error message, or just post in an new issue to your own github repository and post the link here? Thanks
Ok. I will try that later.