MATLAB Answers

Calling a C++ function from a shared library .so file

48 views (last 30 days)
Anh Tran
Anh Tran on 7 Feb 2020
Answered: Dinesh Yadav on 6 Mar 2020
Hi,
I would like some advices on how to approach a project. I have create a C++ code that extensively uses another library (CGAL). Now, I would like to call some function from this shared library, from Matlab, just like how I would call a Matlab function.
My question is, what is the best way to do this. I did a quick research and it comes up with this and this. The first link seems to be what I am looking, but I have no idea what Matlab interface file is, and there seems to be not a clear answer. The second link shows how to create a MEX file, which I am not sure if that's what I want, as I already made the shared library and not sure if I want to modify it.
Any suggestion?

  0 Comments

Sign in to comment.

Answers (1)

Dinesh Yadav
Dinesh Yadav on 6 Mar 2020
Hi,
In simulink we can call C++ shared library functions using S-functions. Let main s-function file be main.cpp and shared library file be sharedObject.so. Compile the files and create a mex executable by calling the command
mex main.cpp -Ipath_to_.so_file)/sharedObject.so
Call the generated mex file in s-function block in simulink.
Hope this workaround using simulink works for you. For more information on s-functions type sfundemos in MATLAB command promt and see existing examples.
I am attaching a document containing a sample program.

  0 Comments

Sign in to comment.

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!