让我解释一下情况。
我使用系统 g++(在 linux 下)编译了一个 c++ 库。然后构建一个 cython 模块,该模块调用预编译库中的函数。构建 cython 模块是在 anconada venv 下完成的(但 venv 内没有安装 g++。因此 cython 必须使用系统 gcc/g++)。现在在同一个anaconda venv下,导入cython模块会报错:
anaconda3/envs/hspy/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./libc_rd_halo.so).
似乎由系统 g++ 编译的 c 库(libc_rd_halo.so)现在正在寻找 anaconda g++ 库。而且我没有在 anaconda venv 中安装 g++。
我可以通过使用 anaconda g++ 从头开始编译 c 库来解决这个问题。再次构建 cython 模块,然后我可以导入模块。但是我想让 anaconda cython 使用系统编译器并在导入模块时查找系统编译器库。
我的问题是:
为什么anaconda cython默认寻找本地anaconda g++,而不是系统编译器?这样做有什么好处吗?
如何让 anaconda cython 查找系统编译器库?