簡體   English   中英

檢查是否使用MATLAB mex進行編譯

[英]Check if compiling with MATLAB mex

如果要在MATLAB下編譯,我想制作一個具有額外功能的跨平台功能。 有沒有可以給我這些信息的定義?

換句話說,我將其實現如下:

void f(void) {
    if (x) {
        (...)
    }
#ifdef MATLAB
    do_other_stuff();
#endif
}

我需要更換一些東西

#ifdef MATLAB

驗證它是否已在matlab下作為MEX函數進行編譯。

我的'>> mex -v'輸出如下:

'>> mex -v
-> mexopts.sh sourced from directory (DIR = $HOME/.matlab/$REL_VERSION)    
   FILE = /home/bmmo/.matlab/R2009b/mexopts.sh
----------------------------------------------------------------
->    MATLAB                = /usr/matlab2009b
->    CC                    = gcc
->    CC flags:
         CFLAGS             = -ansi -D_GNU_SOURCE  -fexceptions -fPIC -fno-omit-frame-pointer -pthread
         CDEBUGFLAGS        = -g
         COPTIMFLAGS        = -O -DNDEBUG
         CLIBS              = -Wl,-rpath-link,/usr/matlab2009b/bin/glnxa64 -L/usr/matlab2009b/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++
         arguments          =  -DMX_COMPAT_32
->    CXX                   = g++
->    CXX flags:
         CXXFLAGS           = -ansi -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread
         CXXDEBUGFLAGS      = -g
         CXXOPTIMFLAGS      = -O -DNDEBUG
         CXXLIBS            = -Wl,-rpath-link,/usr/matlab2009b/bin/glnxa64 -L/usr/matlab2009b/bin/glnxa64 -lmx -lmex -lmat -lm
         arguments          =  -DMX_COMPAT_32
->    FC                    = g95
->    FC flags:
         FFLAGS             = -fexceptions -fPIC -fno-omit-frame-pointer
         FDEBUGFLAGS        = -g
         FOPTIMFLAGS        = -O
         FLIBS              = -Wl,-rpath-link,/usr/matlab2009b/bin/glnxa64 -L/usr/matlab2009b/bin/glnxa64 -lmx -lmex -lmat -lm
         arguments          =  -DMX_COMPAT_32
->    LD                    = gcc
->    Link flags:
         LDFLAGS            = -pthread -shared -Wl,--version-script,/usr/matlab2009b/extern/lib/glnxa64/mexFunction.map -Wl,--no-undefined
         LDDEBUGFLAGS       = -g
         LDOPTIMFLAGS       = -O
         LDEXTENSION        = .mexa64
         arguments          = 
->    LDCXX                 = 
->    Link flags:
         LDCXXFLAGS         = 
         LDCXXDEBUGFLAGS    = 
         LDCXXOPTIMFLAGS    = 
         LDCXXEXTENSION     = 
         arguments          = 
----------------------------------------------------------------

提前致謝。

嘗試跑步

>> mex -v

在您的Matlab中,檢查列出的COMPFLAGS

在我的機器上,我看到/DMATLAB_MEX_FILE被定義為常量MATLAB_MEX_FILE 我想其他平台也是如此,但值得提前檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM