Repository navigation
Builds 1 and 2 for 1.9.7 are missing symbols that were included in build 0 on windows #46
Copy link
Copy link
Closed
Labels
Description
Solution to issue cannot be found in the documentation.
- I checked the documentation.
Issue
Hello dearest maintainers of the jsoncpp feedstock,
we're depending on jsoncpp in our dpct package via libdpct (feedstock: https://github.com/conda-forge/dpct-meta-feedstock). I noticed that on windows, our package stopped working. I investigated it a bit and it seems to come down to jsoncpp 1.9.7 builds 1 and 2. There seem to be some symbols missing.
Not in 'jsoncpp-1.9.7-h429d478_0', but in 'jsoncpp-1.9.7-h429d478_1':
public: __cdecl Json::Value::Value(class std::basic_string_view<char, struct std::char_traits<char>>)
public: class Json::Value __cdecl Json::Value::get(class std::basic_string_view<char, struct std::char_traits<char>>, class Json::Value const &) const
public: bool __cdecl Json::Value::isMember(class std::basic_string_view<char, struct std::char_traits<char>>) const
public: bool __cdecl Json::Value::getString(class std::basic_string_view<char, struct std::char_traits<char>> *) const
public: class Json::Value & __cdecl Json::Value::operator[](class std::basic_string_view<char, struct std::char_traits<char>>)
public: class Json::Value const & __cdecl Json::Value::operator[](class std::basic_string_view<char, struct std::char_traits<char>>) const
public: bool __cdecl Json::Value::removeMember(class std::basic_string_view<char, struct std::char_traits<char>>, class Json::Value *)
public: void __cdecl Json::Value::removeMember(class std::basic_string_view<char, struct std::char_traits<char>>)
Not in 'jsoncpp-1.9.7-h429d478_0', but in 'jsoncpp-1.9.7-h477610d_2':
public: __cdecl Json::Value::Value(class std::basic_string_view<char, struct std::char_traits<char>>)
public: class Json::Value __cdecl Json::Value::get(class std::basic_string_view<char, struct std::char_traits<char>>, class Json::Value const &) const
public: bool __cdecl Json::Value::isMember(class std::basic_string_view<char, struct std::char_traits<char>>) const
public: bool __cdecl Json::Value::getString(class std::basic_string_view<char, struct std::char_traits<char>> *) const
public: class Json::Value & __cdecl Json::Value::operator[](class std::basic_string_view<char, struct std::char_traits<char>>)
public: class Json::Value const & __cdecl Json::Value::operator[](class std::basic_string_view<char, struct std::char_traits<char>>) const
public: bool __cdecl Json::Value::removeMember(class std::basic_string_view<char, struct std::char_traits<char>>, class Json::Value *)
public: void __cdecl Json::Value::removeMember(class std::basic_string_view<char, struct std::char_traits<char>>)
Not in 'jsoncpp-1.9.7-h429d478_1', but in 'jsoncpp-1.9.7-h477610d_2':
In 'jsoncpp-1.9.7-h429d478_0' but not in 'jsoncpp-1.9.7-h429d478_1':
public: class Json::Value & __cdecl Json::Value::operator[](class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &)
public: bool __cdecl Json::Value::isMember(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &) const
public: bool __cdecl Json::Value::removeMember(char const *, class Json::Value *)
public: void __cdecl Json::Value::removeMember(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &)
public: class Json::Value __cdecl Json::Value::get(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class Json::Value const &) const
public: class Json::Value const & __cdecl Json::Value::operator[](class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &) const
public: class Json::Value const & __cdecl Json::Value::operator[](char const *) const
public: class Json::Value & __cdecl Json::Value::operator[](char const *)
public: class Json::Value __cdecl Json::Value::get(char const *, class Json::Value const &) const
public: void __cdecl Json::Value::removeMember(char const *)
public: bool __cdecl Json::Value::removeMember(class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class Json::Value *)
public: bool __cdecl Json::Value::isMember(char const *) const
so packages build against _0 will not work with _1, _2. Packages build with one of the latter, will not work with _0...
linux and mac don't seem to be affected by this (although I only did a shallow check of installing our package with specific versions of jsoncpp and trying to import it)
Installed packages
naEnvironment info
na
Activity
matthiasdiener commentedon Jun 29, 2026
Thanks for the report. Probably related to #43. cc @jschueller
Disable string_view api
jschueller commentedon Jun 29, 2026
8ee5623
k-dominik commentedon Jun 30, 2026
lovely, thank you @matthiasdiener and @jschueller - also for the super quick fix!