2017-05-25 41 views
0

讓我來解釋一下情況。Anaconda cython-built模塊正在尋找錯誤GLIBCXX

我使用系統g ++(linux下)編譯了一個C++庫。 然後構建了一個在預編譯庫中調用函數的cython模塊。構建cython模塊是在anaconada venv下完成的(但是沒有在venv中安裝g ++,因此cython必須使用gcc/g ++系統)。 現在在相同的水蟒VENV,導入用Cython模塊導致錯誤爲:

anaconda3/envs/hspy/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./libc_rd_halo.so). 

好像C庫(libc_rd_halo.so),其由系統克編譯++現在正在尋找一個水蟒克++庫。我沒有在anaconda venv中安裝g ++。


我可以由使用anaconda克++編譯從頭C庫解決問題。再次構建cython模塊,然後我可以導入模塊。 但我想讓anaconda cython使用系統編譯器,並在模塊導入時查找系統編譯器庫。

我的問題是:

  1. 爲什麼蟒蛇用Cython尋找一個當地的蟒蛇G ++默認,但沒有系統的編譯器?這樣做的好處嗎?

  2. 如何讓anaconda cython查找系統編譯器庫?

回答

0
  1. 爲什麼蟒蛇用Cython找當地的蟒蛇G ++默認,但沒有系統的編譯器?這樣做的好處嗎?

  2. 如何讓anaconda cython查找系統編譯器庫?

  1. 由於與海灣合作委員會的一個版本編譯的庫只能與彙編與兼容版本的GCC的,因爲你發現了其他庫鏈接。

  2. 你不知道。根據以上情況,使用系統編譯器構建的二進制文件可能會或可能不會與使用anaconda編譯器構建的其他anaconda二進制文件一起使用。

如果你想讓你的二進制文件使用系統庫,那麼你需要製作一個系統軟件包,而不是anaconda軟件包。系統軟件包將只能在該系統(和版本)上運行。