C++ Flags in Legacy Code Tool

2 次查看(过去 30 天)
Audrow Nash
Audrow Nash 2017-9-25
回答: David Fink 2017-10-2
I want to compile a large C++ project into an S-function. The C++ project uses C++11.
From the Legacy Code Tool, how can I build with the C++11 compiler? From command line, I would specify C++11 with the flag `-std=c++11`. Is there a way to do such thing with the Legacy Code Tool?

回答(1 个)

David Fink
David Fink 2017-10-2
While passing '-std=c++11' to the Legacy Code Tool is not currently supported, I have tested the following workaround:
  1. Construct a header file that declares the simulation function without c++11 syntax
  2. Compile the C++ project into a shared static library (using '-std=c++11') that contains the definition of the simulation function
  3. Create a C++ file with a wrapper function that calls the simulation function
  4. Create a legacy code struct 'def' as in https://www.mathworks.com/help/simulink/examples/c-object-methods-as-legacy-functions.html
  5. Set def.Options.language = 'C++', def.HeaderFiles = {'simple_header.hpp'}, and def.HostLibFiles = {'shared_static_library.so'}
  6. Continue to follow the instructions on the above linked page

类别

Help CenterFile Exchange 中查找有关 Simulink Coder 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by