问题
I made a short .m file
function myOutput = multiplyByConstant(myInput, myConstant=1)
myOutput = myInput * myConstant;
And then used the provided createOctaveComponent command to make it into a .. thing
I go into the generated folder and try to run build.sh, but the build won't work.
multiplyByConstant_base.cpp:69:22: error: 'do_octave_atexit' was not declared at this scope.
I tried running grep over all the .h files I though that would matter, but the method was not exported anywhere.
I found a post here: http://octave.1599824.n4.nabble.com/exposing-do-octave-atexit-in-the-API-td4661829.html
They discuss about exposing said method.
Have I missed some crucial step? Can I replace do_octave_atexit with something else?
EDIT: I'm using:
- Ocateve 3.8.2
- REDHAWK 2.0.4
回答1:
Update: This compatibility issue has been resolved in REDHAWK 2.0.6 and REDHAWK 2.1.0. You will need to regenerate your component for the change to take effect.
It definitely sounds like downgrading Octave will get you up and running for older REDHAWK versions. The code generators in REDHAWK 1.10.0-2.0.5 are compatible with Octave 3.4.3-3.6.4 (I don't recall exactly when the break happened, but I remember it being in a sub-minor release after 3.6.4). 3.4.3 is what ships with CentOS 6. This is a known compatibility issue with REDHAWK <= 2.0.5 and the version of Octave that ships with CentOS 7.
来源:https://stackoverflow.com/questions/42575093/do-octave-atexit-missing-does-createoctavecomponent-work