假设我有一个类似于
的模块MODULE test_module
INTEGER, PARAMETER :: var1 = 25
INTEGER :: var2
REAL, DIMENSION(var1) :: arr1
END MODULE test_module
我用这个
编译gcc -shared -fPIC -o libtest.so test_module.f90
我检查共享对象,它不包含var1
nm libtest.so | grep test_module
0000000000200e00 B __test_module_MOD_arr1
0000000000200e64 B __test_module_MOD_var2
现在在python中我可以加载共享对象并访问var2
:
import ctypes
lib=ctypes.CDLL("./libtest.so")
ftemp = ctypes.c_int
var2 = ftemp.in_dll(lib,'__test_module_MOD_var2')
如何访问模块中的VAR1
?