zoukankan      html  css  js  c++  java
  • matlab设定mex接驳的C/C++编译器

    使用C/C++编写核心算法,使用matlab调用算法、做上层封装,通常是提升效率并提供易用性的一个不错的选择。

    mex需要设定接驳的C/C++编译器,官方文档在这里:https://ww2.mathworks.cn/help/matlab/matlab_external/changing-default-compiler.html

    简要总结下:

    Windows
    在Windows下用Visual Studio作为C/C++编译器,允许mex设定或切换在不同版本的VS:

    mex -setup C++
    

    Linux

    我使用的是Ubuntu16.04。Ubuntu下的gcc版本通常比matlab的mex需要的gcc版本要高。比如ubuntu16.04的gcc默认是5.4版,但matlab2017b只能用gcc-4.9。

    查阅文档以及尝试后总结为:

    1. 修改/path/to/matlab/bin/mexopt.sh里面的CCCXX变量的值,是没有用的,即便重启了matlab,mex仍然是调用系统PATH中的gcc和g++,而不是mexopt.sh中的CC和CXX

    2. PATH中的gcc和g++(也就是/usr/bin/gcc和/usr/bin/g++),是一个不好的选择:因为它虽然解决了matlab中的mex编译警告、错误,但是整个操作系统中的其他各种库都有可能收到影响从而无法运行。

    3. 正确的解决方法是,使用mex命令时临时设定GCC和G++版本,举例:

    mex GCC='/usr/bin/gcc-4.9' private/edgesDetectMex.cpp -outdir private
    
  • 相关阅读:
    Mac OS X开发学习 -打开文件选择器并获取文件
    Mac OS X开发学习
    第三方开源
    Xcode操作
    Mac操作
    XCode6.1 错误
    ios 本地推送
    IOS 语法
    IOS 其他
    IOS 语法
  • 原文地址:https://www.cnblogs.com/zjutzz/p/5979525.html
Copyright © 2011-2022 走看看