Tema: Re: MEX failas
Autorius: Grzegorz Brzęczyszczykiewicz
Data: 2019-08-17 02:47:26
2019-08-12 17:12, Laimis rašė:

> Tą ir turėjau omenyje: reikia krūvos include'inamų katalogų, link'inamų
> (matlab'o ir išorinių) bibliotekų, galbūt dar kažkokių specifinių
> -Define'ų ir/ar kompiliatoriaus/linker'io opcijų. Konkrečiu atveju, kaip
> suprantu iš mex eilutės, libutil.a yra išorinė statinė biblioteka (viena
> iš) su kuria reikia sulink'inti, tad kaip minimum -lutil.

>> mex.getCompilerConfigurations('cpp','Selected')

ans =

  CompilerConfiguration with properties:

             Name: 'Cygwin Compiler (C++)'
     Manufacturer: 'GNU'
         Language: 'C++'
          Version: '7.4.0'
         Location: 'C:\cygwin64'
        ShortName: 'cygwin64-g++'
         Priority: 'E'
          Details: [1×1 mex.CompilerConfigurationDetails]
       LinkerName: 'C:\cygwin64\bin\g++'
    LinkerVersion: ''
           MexOpt:
'C:\Users\ejs\AppData\Roaming\MathWorks\MATLAB\R2019a\mex_C++_win64.xml'

>> ans.Details

ans =

  CompilerConfigurationDetails with properties:

         CompilerExecutable: 'C:\cygwin64\bin\g++'
              CompilerFlags: '-fexceptions -fno-omit-frame-pointer
-std=c++11'
          OptimizationFlags: '-O2 -fwrapv -DNDEBUG'
                 DebugFlags: '-g'
           LinkerExecutable: 'C:\cygwin64\bin\g++'
                LinkerFlags: '-m64 -Wl,--no-undefined -shared -static'
    LinkerOptimizationFlags: '-s'
           LinkerDebugFlags: '-g'
                     SetEnv: 'set COMPILER=C:\cygwin64\bin\gcc↵
       set CXXCOMPILER=C:\cygwin64\bin\g++↵                set
COMPFLAGS=-c -fexceptions -fno-omit-frame-pointer -m64 -DMATLAB_MEX_FILE
 -DMATLAB_MEX_FILE ↵                set CXXCOMPFLAGS=-c -fexceptions
-fno-omit-frame-pointer -std=c++11 -m64 -DMATLAB_MEX_FILE
-DMATLAB_MEX_FILE ↵                set OPTIMFLAGS=-O2 -fwrapv -DNDEBUG↵
               set DEBUGFLAGS=-g↵                set
LINKER=C:\cygwin64\bin\gcc↵                set
CXXLINKER=C:\cygwin64\bin\g++↵                set LINKFLAGS=-m64
-Wl,--no-undefined -shared -static -L"C:\Program
Files\MATLAB\R2019a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat
-lm -llibmwlapack -llibmwblas -llibMatlabDataArray -llibMatlabEngine
-Wl,"C:\Program
Files\MATLAB\R2019a/extern/lib/win64/mingw64/mexFunction.def"↵
      set LINKDEBUGFLAGS=-g↵                set NAME_OUTPUT= -o
"%OUTDIR%%MEX_NAME%%MEX_EXT%"↵set PATH=C:\cygwin64\bin;C:\Program
Files\MATLAB\R2019a\extern\include\win64;C:\Program
Files\MATLAB\R2019a\extern\include;C:\Program
Files\MATLAB\R2019a\simulink\include;C:\Program
Files\MATLAB\R2019a\lib\win64;%MATLAB_BIN%;%PATH%↵set
INCLUDE=C:\cygwin64\include;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include\c++;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include\c++\x86_64-pc-cygwin;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include\c++\backward;C:\cygwin64\x86_64-pc-cygwin\include;%INCLUDE%↵set
LIB=C:\cygwin64\lib;;%LIB%↵set LIBPATH=C:\Program
Files\MATLAB\R2019a\extern\lib\win64;%LIBPATH%↵'
           CommandLineShell: 'set MINGW_ROOT_PATH=C:\cygwin64'
        CommandLineShellArg: ''


>> ans.Details.SetEnv

ans =

    'set COMPILER=C:\cygwin64\bin\gcc
                     set CXXCOMPILER=C:\cygwin64\bin\g++
                     set COMPFLAGS=-c -fexceptions
-fno-omit-frame-pointer -m64 -DMATLAB_MEX_FILE  -DMATLAB_MEX_FILE
                     set CXXCOMPFLAGS=-c -fexceptions
-fno-omit-frame-pointer -std=c++11 -m64 -DMATLAB_MEX_FILE
-DMATLAB_MEX_FILE
                     set OPTIMFLAGS=-O2 -fwrapv -DNDEBUG
                     set DEBUGFLAGS=-g
                     set LINKER=C:\cygwin64\bin\gcc
                     set CXXLINKER=C:\cygwin64\bin\g++
                     set LINKFLAGS=-m64 -Wl,--no-undefined -shared
-static -L"C:\Program Files\MATLAB\R2019a\extern\lib\win64\mingw64"
-llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas
-llibMatlabDataArray -llibMatlabEngine -Wl,"C:\Program
Files\MATLAB\R2019a/extern/lib/win64/mingw64/mexFunction.def"
                     set LINKDEBUGFLAGS=-g
                     set NAME_OUTPUT= -o "%OUTDIR%%MEX_NAME%%MEX_EXT%"
     set PATH=C:\cygwin64\bin;C:\Program
Files\MATLAB\R2019a\extern\include\win64;C:\Program
Files\MATLAB\R2019a\extern\include;C:\Program
Files\MATLAB\R2019a\simulink\include;C:\Program
Files\MATLAB\R2019a\lib\win64;%MATLAB_BIN%;%PATH%
     set
INCLUDE=C:\cygwin64\include;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include\c++;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include\c++\x86_64-pc-cygwin;C:\cygwin64\lib\gcc\x86_64-pc-cygwin\7.4.0\include\c++\backward;C:\cygwin64\x86_64-pc-cygwin\include;%INCLUDE%
     set LIB=C:\cygwin64\lib;;%LIB%
     set LIBPATH=C:\Program Files\MATLAB\R2019a\extern\lib\win64;%LIBPATH%
     '


-- 
Grzegorz

Chrząszczyrzewoszyce, powiat Łękołody