Julia 调用 C 语言(笔记)

                     

贡献者: addis

  • 本文处于草稿阶段。

int myfun () {
 return 2;
}
double myfun2 (float i, float j) {
 return i+j;
}

   编译动态链接库:

gcc -o test.o -c test.c
gcc -shared -o test.so test.o -fPIC

   在 Julia 中调用

test = joinpath(@__DIR__, "test.so")
a = ccall((:myfun,test), Int32, ())
b = ccall((:myfun2,test), Float64, (Float32,Float32), 2.5, 1.5)
其中 @__DIR__ 是当前路径。注意 ccall 是一个关键字,不是函数。:函数名 的类型是 Symbol。第二个参数是返回类型,第三个参数是函数的参数类型,后面是具体的参数。如果只有一个参数,用 (类型,) 即 1-Tuple。没有参数时,() 表示 0-Tuple。

                     

© 小时科技 保留一切权利