我想在C++中嵌入julia,我希望能获得一个jl_value_t*,它通过ccall来生成。
这表现在C++代码上为:
const char* f_define = "c(du, u, p, t) = ccall(:Robertson_System, Cvoid, (Ptr{Cdouble}, Ptr{Cdouble}, Cdouble), du, u, t)";
jl_value_t* f = jl_eval_string(f_define);
这里Robertson_System是在C++中已写好编译并成功链接的函数。对于我完整程序的测试表现出该语句有问题。然而,如果在julia中直接获得函数对象则没有问题,julia代码如下:
f = c(du, u, p, t) = ccall(:Robertson_System, Cvoid, (Ptr{Cdouble}, Ptr{Cdouble}, Cdouble), du, u, t);
这行代码成功获得了我想要的函数句柄。
我想知道C++中这段代码失败的原因,并且我应如何解决这个问题。