2014-10-30 117 views
-3

我目前有錯誤2):找不到符號___kmpc_begin。我遇到了其他符號未找到錯誤,但此消息沒有提供任何有關如何糾正問題的信息。f2py我該如何修復符號未找到錯誤,如___kmpc_begin

如果有幫助,我使用下面的命令編譯與ifort代碼: f2py -c --fcompiler = intelem --f77exec =的/ usr/bin中/ ifort -m主要main.f

在哪裏我能看看能找出什麼符號找不到錯誤的意思,以及如何糾正它?

+0

是你所有的代碼包含在一個文件或幾個文件?你在使用任何外部庫嗎? – SethMMorton 2014-10-30 21:23:48

+0

有一個主文件引用了同一目錄中包含的其他文件中的幾個子例程。沒有外部庫。 – CodeGuyRoss 2014-10-30 21:28:09

+0

它看起來像你沒有將這些其他文件名傳遞給f2py。如果是這樣,鏈接器不知道在哪裏找到它們,因此該符號未找到錯誤。 – SethMMorton 2014-10-30 21:29:25

回答

0

基本上這個錯誤說的是該庫不包含在由f2py創建的.so文件中。這裏可能有一些額外的庫文件和命令選項,你不需要,但至少這給出瞭如何修復符號找不到錯誤的線索。

修復「2」:找不到符號___kmpc_begin「我做了以下,但您可以將此想法應用於其他符號找不到的錯誤。

首先運行此:

f2py -m主-h sgnFile.pyf main.f

然後運行該:

f2py -c --fcompiler = intelem --f77exec =/USR/bin/ifort -L/opt/intel/composer_xe_2015.0.077/mkl/lib -L ​​/ opt/intel/composer_xe_2015.0.077/compiler/lib -llibiomp5 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_intel_thread -lpthread -lm -m main sgnFile .pyf main.f * .o

我把文件從intel文件夾放在同一個文件夾c維護我的main.f文件,並允許我能夠使用pycharm編譯我的應用程序,因此您可能還需要執行此操作。

希望這會有所幫助!

相關問題