set
array("a")
1
set
array("b")
2
命令,然后test.tcl就能访问array
如下:
source
test.tcl
puts
"$array($a)"
方法1:编译外部C程序位obj文件
gcc -c out.c
, 修改LDDLFLAG为"-shared /abs/dir/to/out.o"
use Inline C =>Config =>LDDLFLAGS =>"-shared /abs/dir/to/out.o"
use Inline C =><<"C_CODE"
extern int used_func(int, int)
int myfunc(int a, int b)
{
return a + b + a + used_func(a, b)
}
C_CODE
print myfunc(5, 9)."\n"
这种方法严重同 外部cc编译器有关. 路径都使用绝对路径
方法2:
先把外部的C程序编译成静态链接库 比如命名为 libabc.a 然后设置Inline::C的LIBS
ar -rc libout.a out.o
这种方法通用一些.
use Inline C =>Config =>LIBS =>"-L/abs/dir/to/libout.a -lout"
下面的代码一样, 路径都使用绝对路径
其他方法就是使用perlxs, swig等工具了.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)