Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc Anaconda cython制造的模块正在寻找错误的GLIBCXX_Gcc_Anaconda_Cython_Cythonize - Fatal编程技术网

Gcc Anaconda cython制造的模块正在寻找错误的GLIBCXX

Gcc Anaconda cython制造的模块正在寻找错误的GLIBCXX,gcc,anaconda,cython,cythonize,Gcc,Anaconda,Cython,Cythonize,让我解释一下情况 使用系统G++(Linux下)编译C++库。 然后构建了一个cython模块,该模块调用预编译库中的函数。cython模块的构建是在anaconada venv下完成的(但venv内没有安装g++。因此cython必须使用系统gcc/g++)。 现在,在相同的anaconda venv下,导入cython模块会导致以下错误: anaconda3/envs/hspy/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (r

让我解释一下情况

使用系统G++(Linux下)编译C++库。 然后构建了一个cython模块,该模块调用预编译库中的函数。cython模块的构建是在anaconada 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查找系统编译器库

  • 为什么anaconda cython在默认情况下查找本地anaconda g++而不是系统编译器?这样做有什么好处

  • 如何让anaconda cython查找系统编译器库

  • 因为您发现,使用一个版本的GCC编译的库只能与使用兼容版本的GCC编译的其他库链接

  • 你没有。如上所述,使用系统编译器生成的二进制文件可能与使用anaconda编译器生成的其他anaconda二进制文件一起使用,也可能不使用

  • 如果希望二进制文件使用系统库,则需要制作一个系统包,而不是anaconda包。系统包将仅在该系统(和的版本)上工作