C++ 将Julia中的boost库与Windows上的Cxx.jl一起使用

C++ 将Julia中的boost库与Windows上的Cxx.jl一起使用,c++,windows,boost,julia,C++,Windows,Boost,Julia,我将Cxx与Julia 1.3.1一起使用,以使用boost库的一个功能,在安装了这样的库之后,它在Linux上可以正常工作,但在Windows中,我从未使它工作过。这是我写的模块: module Airyzero #Returns zeros of Airy's function using Cxx; export airyzero cxx""" #include<iostream> #include <boost/math/special_functi

我将Cxx与Julia 1.3.1一起使用,以使用boost库的一个功能,在安装了这样的库之后,它在Linux上可以正常工作,但在Windows中,我从未使它工作过。这是我写的模块:

module Airyzero

#Returns zeros of Airy's function

using Cxx;
export airyzero
cxx""" 
    #include<iostream>
    #include <boost/math/special_functions/airy.hpp>
    #include <boost/multiprecision/cpp_dec_float.hpp>
    typedef boost::multiprecision::cpp_dec_float_50 float_type;
    """

cxx"""
    double airyzero1(int y) {
    return boost::math::airy_ai_zero<double>(y);
    }
    """

    airyzero(ind) = @cxx airyzero1(ind)

end
模块Airyzero
#返回艾里函数的零
使用Cxx;
出口航空公司
cxx”“”
#包括
#包括
#包括
typedef boost::多精度::cpp_dec_float_50 float_type;
"""
cxx”“”
双airyzero1(内部y){
返回升压::数学::airy_ai_zero(y);
}
"""
airyzero(ind)=@cxx airyzero1(ind)
结束

因此,我可以在代码中使用boost中的函数
airy_ai_zero
。我需要在Windows中也能工作,因为我实验室的所有计算机都不使用Linux(我的同事也不使用Linux)。

我将安装boost的路径添加到标题目录中:

if Sys.iswindows()
   const pathboost = "C:\\boost_1_73_0";
   addHeaderDir(pathboost,kind=C_System);
end

我对特殊函数知之甚少,但也许这就足够了?@phipsgabler不,正是因为我想计算Airy函数的第n个零,最初我还检查了该函数是否在SpecialFunctions.jl中实现,但事实并非如此,因此为了不重新发明轮子,我在GSL.jl或其他语言中寻找实现,并在boost库中找到了该函数。