Build xeus-cling from source

Environment

  1. macOS Catalina 10.15.7
  2. miniConda 4.10.1

Build

Follow the guide from Installation from source

  1. Download and install miniConda as necessary.
  2. Setup conda virtual environment and install required packages.
conda create        \
-n xeus-cling-dev   \
-c conda-forge      \
cmake               \
xeus=1.0.0          \
cling=0.8           \
clangdev=5.0        \
llvmdev=5           \
nlohmann_json       \
cppzmq              \
xtl                 \
pugixml             \
cxxopts
  1. Activate the environment just created
conda activate xeus-cling-dev
  1. Configure required build variables
export CC=cc      # which cc   -->  /usr/bin/cc
export CXX=c++    # which c++ --> /usr/bin/c++
  1. Make and change to build directory.
mkdir build
cd build
  1. Run cmake to generate make files
cmake \
-D OPENSSL_ROOT_DIR=${CONDA_HOME}/pkgs/openssl-1.1.1k-h9ed2024_0 \
-D CMAKE_INSTALL_PREFIX=${CONDA_PREFIX} \
-D CMAKE_C_COMPILER=$CC \
-D CMAKE_CXX_COMPILER=$CXX \
-D CMAKE_INSTALL_LIBDIR=${CONDA_PREFIX}/lib \
-D DOWNLOAD_GTEST=OFF \
..

Note that OpenSSL here locates in CONDA_HOME rather than in CONDA_PREFIX.

echo ${CONDA_HOME} --> /Users/nling/opt/miniconda3
echo ${CONDA_PREFIX} --> /Users/nling/opt/miniconda3/envs/xeus-cling-dev 

Note: OPENSSL_ROOT_DIR must be configured, check FindOpenSSL for more details, in order to use a customized openssl version, otherwise, the linker(ld) will use macOS built-in OpenSSL by default, which is not allowed and will lead to linking errors as follows.

...
[ 81%] Linking CXX shared library libxeus-cling.dylib
ld: cannot link directly with dylib/framework, your binary is not an allowed client of /usr/lib/libcrypto.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libxeus-cling.0.12.1.dylib] Error 1
make[1]: *** [CMakeFiles/xeus-cling.dir/all] Error 2
make: *** [all] Error 2
...

The sample cmake output looks as follows

-- The C compiler identification is AppleClang 12.0.0.12000032
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- 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-cling v0.12.1
-- Found LLVM_CONFIG as /Users/nling/opt/miniconda3/envs/xeus-cling-dev/bin/llvm-config
# LLVM_MAIN_INCLUDE_DIR:
# LLVM_LIBRARY_DIR:
# LLVM_BINARY_DIR:
# LLVM_MAIN_SRC_DIR:
-- Found nlohmann_json: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/cmake/nlohmann_json/nlohmann_jsonConfig.cmake (found suitable version "3.9.1", minimum required is "3.2.0")
-- Found OpenSSL: /Users/nling/opt/anaconda3/pkgs/openssl-1.1.1k-h9ed2024_0/lib/libcrypto.dylib (found version "1.1.1k")
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
# OPENSSL_INCLUDE_DIR:/Users/nling/opt/anaconda3/pkgs/openssl-1.1.1k-h9ed2024_0/include
# OPENSSL_CRYPTO_LIBRARY:/Users/nling/opt/anaconda3/pkgs/openssl-1.1.1k-h9ed2024_0/lib/libcrypto.dylib
# OPENSSL_CRYPTO_LIBRARIES:/Users/nling/opt/anaconda3/pkgs/openssl-1.1.1k-h9ed2024_0/lib/libcrypto.dylib
# OPENSSL_SSL_LIBRARY:/Users/nling/opt/anaconda3/pkgs/openssl-1.1.1k-h9ed2024_0/lib/libssl.dylib
# OPENSSL_SSL_LIBRARIES:/Users/nling/opt/anaconda3/pkgs/openssl-1.1.1k-h9ed2024_0/lib/libssl.dylib
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/nling/Downloads/code/xeus-cling/build
  1. Kick off the build process.
make

sample output:

Consolidate compiler generated dependencies of target xeus-cling
[  9%] Building CXX object CMakeFiles/xeus-cling.dir/src/xinput.cpp.o
[ 18%] Building CXX object CMakeFiles/xeus-cling.dir/src/xinterpreter.cpp.o
[ 27%] Building CXX object CMakeFiles/xeus-cling.dir/src/xoptions.cpp.o
[ 36%] Building CXX object CMakeFiles/xeus-cling.dir/src/xparser.cpp.o
[ 45%] Building CXX object CMakeFiles/xeus-cling.dir/src/xholder_cling.cpp.o
[ 54%] Building CXX object CMakeFiles/xeus-cling.dir/src/xmagics/executable.cpp.o
[ 63%] Building CXX object CMakeFiles/xeus-cling.dir/src/xmagics/execution.cpp.o
[ 72%] Building CXX object CMakeFiles/xeus-cling.dir/src/xmagics/os.cpp.o
[ 81%] Linking CXX shared library libxeus-cling.dylib
[ 81%] Built target xeus-cling
Consolidate compiler generated dependencies of target xcpp
[ 90%] Building CXX object CMakeFiles/xcpp.dir/src/main.cpp.o
[100%] Linking CXX executable xcpp
[100%] Built target xcpp
  1. Install built artifacts
make install

sample output:

Install the project...
-- Install configuration: "Release"
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/libxeus-cling.0.12.1.dylib
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/libxeus-cling.0.dylib
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/libxeus-cling.dylib
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xbuffer.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xeus_cling_config.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xholder_cling.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xinterpreter.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xmagics.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xmanager.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xoptions.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xeus-cling/xpreamble.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/bin/xcpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xcpp/xmime.hpp
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/include/xcpp/xdisplay.hpp
-- Up-to-date: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp14
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp14/kernel.json
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp14/logo-64x64.png
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp14/logo-32x32.png
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp11
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp11/kernel.json
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp11/logo-64x64.png
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp11/logo-32x32.png
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp17
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp17/kernel.json
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp17/logo-64x64.png
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp17/logo-32x32.png
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/xeus-cling/tagfiles
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/xeus-cling/tagfiles/cppreference-doxygen-web.tag
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/xeus-cling/tagfiles/xtensor.tag
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/etc/xeus-cling/tags.d
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/etc/xeus-cling/tags.d/xtensor.json
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/etc/xeus-cling/tags.d/stl.json
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/cmake/xeus-cling/xeus-clingConfig.cmake
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/cmake/xeus-cling/xeus-clingConfigVersion.cmake
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/cmake/xeus-cling/xeus-clingTargets.cmake
-- Installing: /Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/cmake/xeus-cling/xeus-clingTargets-release.cmake
  1. Checks C++ kernels were installed as expected.
jupyter kernelspec list

sample output:

Available kernels:
  python3    /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/python3
  xcpp11     /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp11
  xcpp14     /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp14
  xcpp17     /Users/nling/opt/miniconda3/envs/xeus-cling-dev/share/jupyter/kernels/xcpp17

Note that you may need to install Jupyterlab if it's not yet installed.

conda install jupyterlab -c conda-forge
  1. Run Jupyterlab from the directory you would give Jupyter's File Navigator access to.
# pwd --> /Users/nling/opencv
jupyter-lab
  1. Create/Edit notebook with the target C++ kernels (C++11, C++14, C++17) just installed.

Problems

  1. Notebook run displayImage caused a crash
plt::figure();
plt::imshow(image);
auto pltImg = displayImage(image);

run displayImage(image) ended up with following crash.

Fatal Python error: init_import_site: Failed to import the site module
Python runtime state: initialized
Traceback (most recent call last):
  File "/Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/python3.9/site.py", line 73, in 
    import os
  File "/Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/python3.9/os.py", line 29, in 
    from _collections_abc import _check_methods
  File "/Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/python3.9/_collections_abc.py", line 416, in 
    class _CallableGenericAlias(GenericAlias):
TypeError: type 'types.GenericAlias' is not an acceptable base type

Noticed that the crash was happened in the xeus-cling-dev env but not in base env, where xeus-cling was installed via a conda command conda install xeus-cling -c conda-forge.

conda info outputs for the base env:

(base) ➜  ~ conda install xeus-cling -c conda-forge
(base) ➜  ~ conda info

     active environment : base
    active env location : /Users/nling/opt/miniconda3
            shell level : 1
       user config file : /Users/nling/.condarc
 populated config files :
          conda version : 4.10.1
    conda-build version : not installed
         python version : 3.9.1.final.0
       virtual packages : __osx=10.15.7=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/nling/opt/miniconda3  (writable)
      conda av data dir : /Users/nling/opt/miniconda3/etc/conda
  conda av metadata url : https://repo.anaconda.com/pkgs/main
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/nling/opt/miniconda3/pkgs
                          /Users/nling/.conda/pkgs
       envs directories : /Users/nling/opt/miniconda3/envs
                          /Users/nling/.conda/envs
               platform : osx-64
             user-agent : conda/4.10.1 requests/2.25.0 CPython/3.9.1 Darwin/19.6.0 OSX/10.15.7
                UID:GID : 501:20
             netrc file : None
           offline mode : False

conda list output for the base env:

(base) ➜  ~ conda list
# packages in environment at /Users/nling/opt/miniconda3:
#
# Name                    Version                   Build  Channel
anyio                     3.2.1            py39h6e9494a_0    conda-forge
appnope                   0.1.2            py39h6e9494a_1    conda-forge
argon2-cffi               20.1.0           py39hcbf5805_2    conda-forge
async_generator           1.10                       py_0    conda-forge
attrs                     21.2.0             pyhd8ed1ab_0    conda-forge
babel                     2.9.1              pyh44b312d_0    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
blas                      1.0                         mkl
bleach                    3.3.0              pyh44b312d_0    conda-forge
brotlipy                  0.7.0           py39h9ed2024_1003
ca-certificates           2021.5.30            h033912b_0    conda-forge
certifi                   2021.5.30        py39h6e9494a_0    conda-forge
cffi                      1.14.4           py39h2125817_0
chardet                   3.0.4           py39hecd8cb5_1003
clang_variant             1.0                  cling_v0.8    conda-forge
clangdev                  5.0.0             hf1592d7_1012    conda-forge
cling                     0.8                  h1d6eb1e_0    conda-forge
conda                     4.10.1           py39h6e9494a_0    conda-forge
conda-package-handling    1.7.2            py39h9ed2024_1
cppzmq                    4.7.1                hf09c4ce_2    conda-forge
cryptography              3.3.1            py39hbcfaee0_0
cycler                    0.10.0                     py_2    conda-forge
decorator                 5.0.9              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
entrypoints               0.3             pyhd8ed1ab_1003    conda-forge
freetype                  2.10.4               h4cff582_1    conda-forge
icu                       68.1                 h74dc148_0    conda-forge
idna                      2.10                       py_0
importlib-metadata        4.5.0            py39h6e9494a_0    conda-forge
intel-openmp              2021.2.0           hecd8cb5_564
ipykernel                 5.5.5            py39h71a6800_0    conda-forge
ipython                   7.24.1           py39h71a6800_0    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
jbig                      2.1               h0d85af4_2003    conda-forge
jedi                      0.18.0           py39h6e9494a_2    conda-forge
jinja2                    3.0.1              pyhd8ed1ab_0    conda-forge
jpeg                      9d                   hbcb3906_0    conda-forge
json5                     0.9.5              pyh9f0ad1d_0    conda-forge
jsonschema                3.2.0              pyhd8ed1ab_3    conda-forge
jupyter_client            6.1.12             pyhd8ed1ab_0    conda-forge
jupyter_core              4.7.1            py39h6e9494a_0    conda-forge
jupyter_server            1.9.0              pyhd8ed1ab_0    conda-forge
jupyterlab                3.0.16             pyhd8ed1ab_0    conda-forge
jupyterlab_pygments       0.1.2              pyh9f0ad1d_0    conda-forge
jupyterlab_server         2.6.0              pyhd8ed1ab_0    conda-forge
kiwisolver                1.3.1            py39hedf5dff_1    conda-forge
lcms2                     2.12                 h577c468_0    conda-forge
lerc                      2.2.1                h046ec9c_0    conda-forge
libcxx                    11.1.0               habf9029_0    conda-forge
libdeflate                1.7                  h35c211d_5    conda-forge
libedit                   3.1.20191231         h1de35cc_1
libffi                    3.3                  hb1e8313_2
libiconv                  1.16                 haf1e3a3_0    conda-forge
libpng                    1.6.37               h7cec526_2    conda-forge
libsodium                 1.0.18               hbcb3906_1    conda-forge
libtiff                   4.3.0                h1167814_1    conda-forge
libwebp-base              1.2.0                h0d85af4_2    conda-forge
libxml2                   2.9.12               h93ec3fd_0    conda-forge
lz4-c                     1.9.3                h046ec9c_0    conda-forge
markupsafe                2.0.1            py39h89e85a6_0    conda-forge
matplotlib                3.4.2            py39h6e9494a_0    conda-forge
matplotlib-base           3.4.2            py39hb07454d_0    conda-forge
matplotlib-inline         0.1.2              pyhd8ed1ab_2    conda-forge
mistune                   0.8.4           py39hcbf5805_1003    conda-forge
mkl                       2021.2.0           hecd8cb5_269
mkl-service               2.3.0            py39h9ed2024_1
mkl_fft                   1.3.0            py39h4a7008c_2
mkl_random                1.2.1            py39hb2f4e1b_2
nbclassic                 0.3.1              pyhd8ed1ab_1    conda-forge
nbclient                  0.5.3              pyhd8ed1ab_0    conda-forge
nbconvert                 6.1.0            py39h6e9494a_0    conda-forge
nbformat                  5.1.3              pyhd8ed1ab_0    conda-forge
ncurses                   6.2                  h0a44026_1
nest-asyncio              1.5.1              pyhd8ed1ab_0    conda-forge
nlohmann_json             3.9.1                he49afe7_1    conda-forge
notebook                  6.4.0              pyha770c72_0    conda-forge
numpy                     1.20.2           py39h4b4dc7a_0
numpy-base                1.20.2           py39he0bd621_0
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                h6e7aa92_1    conda-forge
openssl                   1.1.1k               h0d85af4_0    conda-forge
packaging                 20.9               pyh44b312d_0    conda-forge
pandoc                    2.14.0.3             h0d85af4_0    conda-forge
pandocfilters             1.4.2                      py_1    conda-forge
parso                     0.8.2              pyhd8ed1ab_0    conda-forge
pexpect                   4.8.0              pyh9f0ad1d_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    8.2.0            py39h5fdd921_1    conda-forge
pip                       20.3.1           py39hecd8cb5_0
prometheus_client         0.11.0             pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.19             pyha770c72_0    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pugixml                   1.11.4               he49afe7_0    conda-forge
pycosat                   0.6.3            py39h9ed2024_0
pycparser                 2.20                       py_2
pygments                  2.9.0              pyhd8ed1ab_0    conda-forge
pyopenssl                 20.0.0             pyhd3eb1b0_1
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyrsistent                0.17.3           py39hcbf5805_2    conda-forge
pysocks                   1.7.1            py39hecd8cb5_0
python                    3.9.1                h88f2d9e_2
python-dateutil           2.8.1                      py_0    conda-forge
python.app                3                py39h9ed2024_0
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.1             pyhd8ed1ab_0    conda-forge
pyzmq                     22.1.0           py39h7fec2f1_0    conda-forge
readline                  8.0                  h1de35cc_0
requests                  2.25.0             pyhd3eb1b0_0
requests-unixsocket       0.2.0                      py_0    conda-forge
ruamel_yaml               0.15.80          py39h9ed2024_0
send2trash                1.7.1              pyhd8ed1ab_0    conda-forge
setuptools                51.0.0           py39hecd8cb5_2
six                       1.15.0           py39hecd8cb5_0
sniffio                   1.2.0            py39h6e9494a_1    conda-forge
sqlite                    3.33.0               hffcf06c_0
terminado                 0.10.1           py39h6e9494a_0    conda-forge
testpath                  0.5.0              pyhd8ed1ab_0    conda-forge
tk                        8.6.10               hb0a8c7a_0
tornado                   6.1              py39hcbf5805_1    conda-forge
tqdm                      4.54.1             pyhd3eb1b0_0
traitlets                 5.0.5                      py_0    conda-forge
tzdata                    2020d                h14c3975_0
urllib3                   1.25.11                    py_0
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webencodings              0.5.1                      py_1    conda-forge
websocket-client          0.57.0           py39h6e9494a_4    conda-forge
wheel                     0.36.1             pyhd3eb1b0_0
xeus                      1.0.3                hf09c4ce_1    conda-forge
xeus-cling                0.12.1               h79ef1c8_0    conda-forge
xtl                       0.7.2                h940c156_1    conda-forge
xz                        5.2.5                h1de35cc_0
yaml                      0.2.5                haf1e3a3_0
zeromq                    4.3.4                h1c7c35f_0    conda-forge
zipp                      3.4.1              pyhd8ed1ab_0    conda-forge
zlib                      1.2.11               h1de35cc_3
zstd                      1.5.0                h582d3a0_0    conda-forge

conda info outputs for the xeus-cling-dev env:

(xeus-cling-dev) ➜  ~ conda info

     active environment : xeus-cling-dev
    active env location : /Users/nling/opt/miniconda3/envs/xeus-cling-dev
            shell level : 2
       user config file : /Users/nling/.condarc
 populated config files :
          conda version : 4.10.1
    conda-build version : not installed
         python version : 3.9.1.final.0
       virtual packages : __osx=10.15.7=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/nling/opt/miniconda3  (writable)
      conda av data dir : /Users/nling/opt/miniconda3/etc/conda
  conda av metadata url : https://repo.anaconda.com/pkgs/main
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/nling/opt/miniconda3/pkgs
                          /Users/nling/.conda/pkgs
       envs directories : /Users/nling/opt/miniconda3/envs
                          /Users/nling/.conda/envs
               platform : osx-64
             user-agent : conda/4.10.1 requests/2.25.0 CPython/3.9.1 Darwin/19.6.0 OSX/10.15.7
                UID:GID : 501:20
             netrc file : None
           offline mode : False

conda list output for the xeus-cling-dev env:

(xeus-cling-dev) ➜  ~ conda list
# packages in environment at /Users/nling/opt/miniconda3/envs/xeus-cling-dev:
#
# Name                    Version                   Build  Channel
anyio                     2.2.0            py39hecd8cb5_1
appnope                   0.1.2           py39hecd8cb5_1001
argon2-cffi               20.1.0           py39h9ed2024_1
async_generator           1.10               pyhd3eb1b0_0
attrs                     21.2.0             pyhd3eb1b0_0
babel                     2.9.1              pyhd3eb1b0_0
backcall                  0.2.0              pyhd3eb1b0_0
blas                      1.0                         mkl
bleach                    3.3.0              pyhd3eb1b0_0
brotlipy                  0.7.0           py39h9ed2024_1003
bzip2                     1.0.8                h1de35cc_0
c-ares                    1.17.1               h9ed2024_0
ca-certificates           2021.5.25            hecd8cb5_1
certifi                   2021.5.30        py39hecd8cb5_0
cffi                      1.14.5           py39h2125817_0
chardet                   4.0.0           py39hecd8cb5_1003
clang_variant             1.0                  cling_v0.8    conda-forge
clangdev                  5.0.0             hf1592d7_1012    conda-forge
cling                     0.8                  h1d6eb1e_0    conda-forge
cmake                     3.20.5               hdbd2f3e_0    conda-forge
cppzmq                    4.7.1                hf09c4ce_2    conda-forge
cryptography              3.4.7            py39h2fd3fbb_0
cxxopts                   2.2.1                h9a9d8cb_0    conda-forge
cycler                    0.10.0           py39hecd8cb5_0
decorator                 5.0.9              pyhd3eb1b0_0
defusedxml                0.7.1              pyhd3eb1b0_0
entrypoints               0.3              py39hecd8cb5_0
expat                     2.4.1                h23ab428_2
freetype                  2.10.4               ha233b18_0
icu                       58.2                 h0a44026_3
idna                      2.10               pyhd3eb1b0_0
importlib-metadata        3.10.0           py39hecd8cb5_0
importlib_metadata        3.10.0               hd3eb1b0_0
intel-openmp              2021.2.0           hecd8cb5_564
ipykernel                 5.3.4            py39h01d92e1_0
ipython                   7.24.1           py39h71a6800_0    conda-forge
ipython_genutils          0.2.0              pyhd3eb1b0_1
jbig                      2.1                  h4d881f8_0
jedi                      0.18.0           py39hecd8cb5_1
jinja2                    3.0.1              pyhd3eb1b0_0
jpeg                      9d                   hbcb3906_0    conda-forge
json5                     0.9.6              pyhd3eb1b0_0
jsonschema                3.2.0                      py_2
jupyter_client            6.1.12             pyhd3eb1b0_0
jupyter_core              4.7.1            py39hecd8cb5_0
jupyter_server            1.4.1            py39hecd8cb5_0
jupyterlab                3.0.16             pyhd8ed1ab_0    conda-forge
jupyterlab_pygments       0.1.2                      py_0
jupyterlab_server         2.4.0              pyhd3eb1b0_0
kiwisolver                1.3.1            py39h23ab428_0
krb5                      1.19.1               hcd88c3b_0
lcms2                     2.12                 hf1fd2bf_0
lerc                      2.2.1                h23ab428_0
libcurl                   7.77.0               hf45b732_0    conda-forge
libcxx                    11.1.0               habf9029_0    conda-forge
libdeflate                1.7                  h9ed2024_5
libedit                   3.1.20210216         h9ed2024_1
libev                     4.33                 haf1e3a3_0
libffi                    3.3                  hb1e8313_2
libiconv                  1.16                 h1de35cc_0
libnghttp2                1.43.0               h07e645a_0    conda-forge
libpng                    1.6.37               ha441bb4_0
libsodium                 1.0.18               h1de35cc_0
libssh2                   1.9.0                ha12b0ac_1
libtiff                   4.3.0                h1167814_1    conda-forge
libuv                     1.40.0               haf1e3a3_0
libwebp-base              1.2.0                h9ed2024_0
libxml2                   2.9.12               hcdb78fc_0
llvm-meta                 5.0.0                         0    conda-forge
llvmdev                   5.0.0             h926bf3e_1005    conda-forge
lz4-c                     1.9.3                h23ab428_0
markupsafe                2.0.1            py39h9ed2024_0
matplotlib                3.3.4            py39hecd8cb5_0
matplotlib-base           3.3.4            py39h8b3ea08_0
matplotlib-inline         0.1.2              pyhd8ed1ab_2    conda-forge
mistune                   0.8.4           py39h9ed2024_1000
mkl                       2021.2.0           hecd8cb5_269
mkl-service               2.3.0            py39h9ed2024_1
mkl_fft                   1.3.0            py39h4a7008c_2
mkl_random                1.2.1            py39hb2f4e1b_2
nbclassic                 0.2.6              pyhd3eb1b0_0
nbclient                  0.5.3              pyhd3eb1b0_0
nbconvert                 6.0.7            py39hecd8cb5_0
nbformat                  5.1.3              pyhd3eb1b0_0
ncurses                   6.2                  h0a44026_1
nest-asyncio              1.5.1              pyhd3eb1b0_0
nlohmann_json             3.9.1                he49afe7_1    conda-forge
notebook                  6.4.0            py39hecd8cb5_0
numpy                     1.20.2           py39h4b4dc7a_0
numpy-base                1.20.2           py39he0bd621_0
olefile                   0.46                       py_0
openssl                   1.1.1k               h9ed2024_0
packaging                 20.9               pyhd3eb1b0_0
pandoc                    2.12                 hecd8cb5_0
pandocfilters             1.4.3            py39hecd8cb5_1
parso                     0.8.2              pyhd3eb1b0_0
pexpect                   4.8.0              pyhd3eb1b0_3
pickleshare               0.7.5           pyhd3eb1b0_1003
pillow                    8.2.0            py39h5270095_0
pip                       21.1.2           py39hecd8cb5_0
prometheus_client         0.11.0             pyhd3eb1b0_0
prompt-toolkit            3.0.17             pyh06a4308_0
ptyprocess                0.7.0              pyhd3eb1b0_2
pugixml                   1.11.4               he49afe7_0    conda-forge
pycparser                 2.20                       py_2
pygments                  2.9.0              pyhd3eb1b0_0
pyopenssl                 20.0.1             pyhd3eb1b0_1
pyparsing                 2.4.7              pyhd3eb1b0_0
pyrsistent                0.17.3           py39h9ed2024_0
pysocks                   1.7.1            py39hecd8cb5_0
python                    3.9.5                h88f2d9e_3
python-dateutil           2.8.1              pyhd3eb1b0_0
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.1             pyhd3eb1b0_0
pyzmq                     20.0.0           py39h23ab428_1
readline                  8.1                  h9ed2024_0
requests                  2.25.1             pyhd3eb1b0_0
rhash                     1.4.1                hbcfaee0_1
send2trash                1.5.0              pyhd3eb1b0_1
setuptools                52.0.0           py39hecd8cb5_0
six                       1.16.0             pyhd3eb1b0_0
sniffio                   1.2.0            py39hecd8cb5_1
sqlite                    3.36.0               hce871da_0
terminado                 0.9.4            py39hecd8cb5_0
testpath                  0.5.0              pyhd3eb1b0_0
tk                        8.6.10               hb0a8c7a_0
tornado                   6.1              py39h9ed2024_0
traitlets                 5.0.5              pyhd3eb1b0_0
tzdata                    2021a                h52ac0ba_0
urllib3                   1.26.4             pyhd3eb1b0_0
wcwidth                   0.2.5                      py_0
webencodings              0.5.1            py39hecd8cb5_1
wheel                     0.36.2             pyhd3eb1b0_0
xeus                      1.0.0                h6daa668_0    conda-forge
xtl                       0.7.2                h940c156_1    conda-forge
xz                        5.2.5                h1de35cc_0
zeromq                    4.3.4                h23ab428_0
zipp                      3.4.1              pyhd3eb1b0_0
zlib                      1.2.11               h1de35cc_3
zstd                      1.5.0                h582d3a0_0    conda-forge

Ran conda update matplotlib, trying to download matplotlib from v3.4.2 to v3.3.4. Rebuild and reinstall xeus-cling, wasn't luciky, the crash is still there.

(xeus-cling-dev) ➜  opencv conda update matplotlib
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /Users/nling/opt/miniconda3/envs/xeus-cling-dev

  added / updated specs:
    - matplotlib


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    matplotlib-3.3.4           |   py39hecd8cb5_0          26 KB
    matplotlib-base-3.3.4      |   py39h8b3ea08_0         5.1 MB
    ------------------------------------------------------------
                                           Total:         5.1 MB

The following packages will be SUPERSEDED by a higher-priority channel:

  matplotlib         conda-forge::matplotlib-3.4.2-py39h6e~ --> pkgs/main::matplotlib-3.3.4-py39hecd8cb5_0
  matplotlib-base    conda-forge::matplotlib-base-3.4.2-py~ --> pkgs/main::matplotlib-base-3.3.4-py39h8b3ea08_0

你可能感兴趣的:(Build xeus-cling from source)