簡體   English   中英

編譯C ++ 11代碼作為MATLAB mex文件的一部分

[英]Compiling C++11 code as part of a MATLAB mex file

我有一段用C ++ 11編寫的代碼,我想將其編譯為GNU / Linux的MATLAB MEX文件的一部分。

問題是Linux上的MATLAB僅支持GCC 4.3(及更早版本),並且不支持編譯我的C ++ 11代碼所需的GCC 4.7。

有可能解決這個問題嗎?

是否可以通過使用GCC 4.7編譯一些目標文件並使用GCC 4.3將它們鏈接到MEX文件來解決這個問題?

提前致謝!

如果您可以在4.3擴展中編寫任何代碼並進行編譯,那么只需編寫代碼來編寫您在4.7中編寫和編譯的共享對象。 使用4.7 .so來完成所有c ++ 11工作,只需通過C接口將信息傳遞給它。 您編寫的4.3版本可以訪問所有MATLAB互操作資料。

你也可以通過各種其他方式做到這一點,但這是最干凈的。 您不應該嘗試將目標文件鏈接到4.3擴展名,因為您將訪問兩個不同版本的標准庫(完全不同),並且您不能使用不同的布局/方法/等具有相同類的多個定義。 你將與​​c ++的一個定義規則(ODR)作斗爭。

暫無
暫無

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

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