You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I build the project using CMake with Visual Studio 2015 Update 3, but the example program has link error.
Error
LNK2019
unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl docopt::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,struct docopt::value const &)" (??6docopt@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV12@AEBUvalue@0@@Z) referenced in function main
docopt_example
I think this is due to the following operator<< overload function is not exported (the example program links to the DLL)
// (In docopt_value.h)/// Write out the contents to the ostream
std::ostream& operator<<(std::ostream&, value const&);
If I move this function declaration to docopt.h to enable it to use the macro DOCOPT_API, then example program is built and run successfully.
// (In docopt.h, at the end of namespace docopt)/// Write out the contents to the ostream
DOCOPT_API std::ostream& operator<<(std::ostream&, value const&);
The text was updated successfully, but these errors were encountered:
I'm not expert on shared library.
All I do is launch cmake-gui to enable the example project and then "configure" and "generate". I suppose cmake should take care of all those setup.
I think it's clear that in the source code this operator<< overloading function has no DOCOPT_API with it (declared in docopt_value.h).
So on Windows (or for Visual Studio?), I suppose by default a symbol is not exported.
The only change to fix this, as I listed in the OP, is adding DOCOPT_API to that operator << function, the example project would build and run without problem.
Hi,
I build the project using CMake with Visual Studio 2015 Update 3, but the example program has link error.
I think this is due to the following
operator<<
overload function is not exported (the example program links to the DLL)If I move this function declaration to
docopt.h
to enable it to use the macroDOCOPT_API
, then example program is built and run successfully.The text was updated successfully, but these errors were encountered: