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
    
  • 相关阅读:
    Python中的赋值(复制)、浅拷贝与深拷贝
    review
    Python网络编程
    云计算网络 ASW DSW CSW LSW
    Python文件操作 I/O
    RSI 指标
    python 常见模块
    Python模块和包
    读利弗莫尔
    GDP、CPI、M2
  • 原文地址:https://www.cnblogs.com/zjutzz/p/5979525.html
Copyright © 2011-2022 走看看