jupyter-xeus / xeus-sql

Jupyter kernel for SQL databases
https://xeus-sql.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
158 stars 21 forks source link

Doesn't build. json == 3.11.2 ? #71

Closed papoteur-mga closed 1 year ago

papoteur-mga commented 1 year ago

Hello, I try to build xeus-sql 0.2.0, but it fails with undefined references:

/usr/bin/ld: CMakeFiles/xeus-sql.dir/src/xeus_sql_interpreter.cpp.o: in function `xv::detail::xany_owning<xv::mark, xv::mark_tick>::to_json(nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >&) const':
/usr/include/xvega/utils/xany.hpp:151: undefined reference to `xv::to_json(nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >&, xv::mark_tick const&)'

and more. Here the versions detected:

-- The C compiler identification is GNU 12.2.1
-- The CXX compiler identification is GNU 12.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building xeus-sql v0.2.0
-- Found nlohmann_json: /usr/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake (found suitable version "3.11.2", minimum required is "3.2.0") 
-- Found LibUUID: /usr/lib64/libuuid.so  
-- Found OpenSSL: /usr/lib64/libcrypto.so (found version "3.0.5")  
-- Found nlohmann_json: /usr/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake (found suitable version "3.11.2", minimum required is "3.7.3") 
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Soci found: Looking for plugins
--     * Plugin mysql not found.
--     * Plugin odbc not found.
--     * Plugin postgresql not found.
--     * Plugin sqlite3 not found.
-- Found Soci: /usr/include/soci  
-- Found PostgreSQL: /usr/lib64/libpq.so (found version "13.9")  
-- Found SQLite3: /usr/include (found version "3.40.0") 
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
-- Configuring done
-- Generating done

I see now that recommended json is <3.10.0 Is it any hope?

papoteur-mga commented 1 year ago

Any advice?

JohanMabille commented 1 year ago

Looks like nlohmann_json's ABI changed recently, and is now incompatible with the build of xvega that you are using.

How did you install the dependencies?

papoteur-mga commented 1 year ago

After a rebuild of xvega, this is now OK. Thus closing. Thanks