C++ Flags in Legacy Code Tool

조회 수: 1 (최근 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