在尝试了一些不同的想法后,我尝试了一些非常简单的东西,它在C ++中定义了几个向量并在perl中写入它们。我想我可能在.i文件中做错了什么
vector.i
%module vector
%{
%}
%include "std_vector.i"
namespace std {
%template(IntVector) vector<int>;
%template(DoubleVector) vector<double>;
};
testvec.pl
use vector;
my $v = new vector::IntVector();
print "Empty!\n" if $v->empty; # Checks of vector is empty.
$v->push(42);
$v->push(13);
$v->push(16);
my $v_size = $v->size; # $v_size is now 3.
my $var1 = $v->pop; # $var1 is now 16, $v now contains 2 elements.
my $var2 = $v->get(1); # $var2 is now 13, $v still contains 2 elements.
$v->set(1,17); # $v->get(1) will now return 17.
$v->clear(); # $v is now empty
运行testvec.pl时,会出现段错误。我想我已经定义并初始化了所有的向量。所以我不确定为什么会发生这种分裂。