GCC C/C++ MEX Matlab R2015 Mac OS X (with OpenMP) doesn't work

后端 未结 3 1846
陌清茗
陌清茗 2021-01-17 03:32

I\'m trying to compile a very simple MEX file in Matlab using GCC/G++... First I checked that this is already installed in matlab by: !which gcc

output: /usr/bin/gcc

3条回答
  •  日久生厌
    2021-01-17 04:16

    Finally, I found a proper way to solve it... First, the file mexopts.sh doesn't appear in the folder by default, is necessary to open a terminal and look for it and create it (then Matlab will redirect to it automatically when compiling with MEX):

    find ~/ -name 'mexopts.sh' 
    

    and will appear:

    /Users/FOO//.Trash/MATLAB_R2014a.app/bin/mexopts.sh
    

    Then, copy it as:

    cp /Users/FOO//.Trash/MATLAB_R2014a.app/bin/mexopts.sh ~/.matlab/R2014a
    

    then go to the folder cd ~/.matlab/R2014a and change permissions for your user as:

    chmod u+rwx mexopts.sh
    

    then, open it with your default text editor (Sublime text recommended) as:

    open mexopts.sh
    

    and edit the following: Change where appears macosx10.7 to your current version, in my case macos10.10 then, modify the following lines as describen in (http://www.mathworks.com/matlabcentral/newsreader/view_thread/334250):

    # CC='xcrun -sdk macosx10.7 clang' #OLD
    CC='xcrun /usr/local/bin/gcc' #NEW
    
    
    
    # CXX='xcrun -sdk macosx10.7 clang++' #OLD
     CXX='xcrun /usr/local/bin/g++' #NEW
    
    
    
    # CLIBS="$CLIBS -lstdc++" #OLD
    CLIBS="$CLIBS -lstdc++ -I/usr/local/lib -lgomp" #directory <-I/usr/local/lib> #NEW
    #CXXLIBS="$MLIBS -lstdc++" #OLD
    CXXLIBS="$MLIBS -lstdc++ -I/usr/local/lib -lgomp" #NEW
    

    IMPORTANT NOTE: Make sure that your current G++/G++4.9 is able to compile with OpenMP, trying to include in a hello world file doing in the command line:

    g++-4.9 -o test hello.cpp -fopenmp
    

    or

    g++ -o test hello.cpp -fopenmp
    

    is also possible that a file is corrupted and is necessary to do Can not compile fortran because dyld: Library not loaded :

    brew rm cloog
    
    brew install cloog
    

    (But check first)...

    Is also possible that if you're not able to compile with OMP is necessary to do first a couple of things as described here (Compile OpenMP programs with gcc compiler on OS X Yosemite): 1. Got a new gcc complier from http://hpc.sourceforge.net/ 2. Place a new executable folder by $ sudo tar -xvf gcc-4.9-bin.tar -C / 3. Switched to it by export PATH=/usr/local/bin:$PATH

    Finally, try to compile your MEX file with:

    mex hello.cpp COMPFLAGS="/openmp $COMPFLAGS"
    

    That's it ... .

提交回复
热议问题