C++ Flags in Legacy Code Tool

4 ビュー (過去 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 Center および File ExchangeSimulink Coder についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by