[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Calling Octave from C++
From: |
Tatsuro MATSUOKA |
Subject: |
Re: Calling Octave from C++ |
Date: |
Mon, 26 Mar 2018 03:05:20 +0900 (JST) |
----- Original Message -----
> From: andrea.delbravo
> To: help-octave
> Cc:
> Date: 2018/3/23, Fri 19:28
> Subject: Re: Calling Octave from C++
>
> Well, sorry for the nmissing infos.
> I wirk with Fedora 26 Ocatve 4.2.1. I tried also with Fedora 27 Octave 4.2.2
> but the problem persist.
> The application run perfectly under fedora 25 Octave 4.0.3.
> I minimize the application in order to focalize the problem:
> After several initialization the core of the problem is:
>
> // THIS CODE IS WORKING
> int qq =10;
> int rr =15;
> in(0) = octave_value(qq);
> in(1) = octave_value(rr);
> octave_value_list out = feval ("gcd", in, 1);
> std::cout << out(0).int_value ()
> and it prints the correct result = 5 the Greatest common disisor between 10
> and 15
I have tested the above code on octave 4.2.2 for windows.
The program ended with segmentation fault.
Something might be wrong with standalone program on octave-4.2.2.
I will build windows binary current stable (to octave 4.4 in near future)
and test it and see platform dependence.
Tatsuro
> but if I run
> // THIS CODE IN NOT WORKING
> octave_value_list out = feval ("pp", in, 1);
> where pp.m is a stupid Octave script which shuld disply the two numbers
> (tested and working in the Octave environment)
>
> Application crashes with Segmentation Fault insiede the interpreter, and I
> cannot debug it inside because the interpreter is not compiled with debug
> information
>
> The OCTAVE_PATH environment variable define the path where the .m files are
> saved (see Octave manual for example version 4.4. March 2018 pag 17, but
> valid since a long time in all the Octave Version. I've been using it for at
> least 7 years
>
> The OCTAVE_PATH variable is correctly seen inside the C++ cose. Ifact if I
> run the program with:
>
> // THIS CODE IS WORKING
> in(0) = octave_value(a); // where a is a char[] = OCTAVE_PATH
> octave_value_list out = feval ("getenv", in, 1); //getenv return the
> Evironmental Variable (see Octave manual)
> std::cout << out(0).string_value () // print the correct OCTAVE_PATH
> value
>
> It seems that is I use an embedded function i worke, but if I use my own
> script it crashes
>
> Thanks a lot in advance
>
>
>
>
>
>
>
>
> --
> Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html
>
- Calling Octave from C++, andrea.delbravo, 2018/03/22
- Re: Calling Octave from C++,
Tatsuro MATSUOKA <=
- Re: Calling Octave from C++, Tatsuro MATSUOKA, 2018/03/26
- Re: Calling Octave from C++, Mike Miller, 2018/03/26
- Re: Calling Octave from C++, Tatsuro MATSUOKA, 2018/03/27
- Re: Calling Octave from C++, Tatsuro MATSUOKA, 2018/03/27
- Re: Calling Octave from C++, Tatsuro MATSUOKA, 2018/03/27
- Re: Calling Octave from C++, Mike Miller, 2018/03/27
- Re: Calling Octave from C++, Tatsuro MATSUOKA, 2018/03/27
- Re: Calling Octave from C++, Tatsuro MATSUOKA, 2018/03/27
- Re: Calling Octave from C++, andrea.delbravo, 2018/03/27
- Re: Calling Octave from C++, Tatsuro MATSUOKA, 2018/03/27