JuliaInterop / Cxx.jl

The Julia C++ Interface
Other
755 stars 107 forks source link

Problem using boost c++ libraries, kills julia. #481

Open Ceboc opened 4 years ago

Ceboc commented 4 years ago

I was using Cxx to call a function from boost library, until some days ago, after a SO update (i'm using KDE neon), the code now kills julia and sends me this error:

LLVM ERROR: Program used external function '_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev' which could not be resolved!

and this is my code

module BesselYzero
# Function that returns zeros of bessel Y function

using Cxx;

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

export besselyzeros

cxx""" 
    #include <iostream>
    #include <boost/math/special_functions/bessel.hpp>
    #include <boost/multiprecision/cpp_dec_float.hpp>
    typedef boost::multiprecision::cpp_dec_float_50 float_type;
    """

cxx"""
    double besyzero2(double x, int y) {
    return boost::math::cyl_neumann_zero(x, y);
    }
    """
    besselyzeros(nu, ind) = @cxx besyzero2(Float64(nu), ind)

end

and here is the documentation of the function [https://www.boost.org/doc/libs/1_74_0/libs/math/doc/html/math_toolkit/bessel/bessel_root.html]

I thought that was an issue with the update process, so i tried with a clean installation, but the problem persist.

My return for versioninfo()

Julia Version 1.3.1
Commit 2d5741174c (2019-12-30 21:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)