2012-01-05 20 views
1

親愛的計算器專家,使用模塊,它是一個靜態鏈接的對象(Fortran語言)

我想創建一個(與FORTRAN)的共享對象文件,可以說myso.so.在這個.so中,我有一個模塊文件modso.f和一個'subroutine file',subso.f。

我也有一個靜態鏈接的對象(在FORTRAN再次),讓說mya.a 3個子程序文件和2個模塊文件,moda1.f和moda2.f。

在myso.so的鏈接,我包括mya.a,當然還有modso.o,subso.o。在modso.f和subso.f,我有使用在mya.a.的moda1.f和moda2.f模塊USE語句我的問題是:當我打開(在主程序運行時)myso.so庫(使用命令dlopen(myso.so,RTLD_LAZY)),我得到從dlerror()返回的這個錯誤:myso的.so:未定義的符號:moda1_

所以,換句話說,似乎.so庫無法看到。一個庫中的模塊。在編譯和鏈接階段,我沒有收到任何錯誤/警告。

我使用PGI 10 FORTRAN 90編譯程序烏本杜下。上面的例子工作在窗口罰款(的。所以在哪裏.dll和.A是的.lib)高級

感謝。

+0

我想你可能需要顯示一些(很少,但完整的)代碼。我不明白爲什麼符號'moda1'會被引用,因爲它是一個模塊的名稱,對吧? – eriktous 2012-01-06 00:42:15

+0

是的,moda1是模塊的名稱(和兩個文件名)。好的,我會嘗試發佈一些代碼,謝謝你的回答。 – helios21 2012-01-06 10:02:52

回答