GCC 3.4 против 4.4 для файлов MEX на основе C++?

Каковы компромиссы / проблемы использования gcc 3.4 против 4.4 для компиляции современных файлов Matlab MEX?

Мне нужно скомпилировать готовый код C++ ( kdtree) в виде файла MEX для использования с MATLAB (R2012a) под Fedora v16. Я столкнулся с проблемами символов, используя последний компилятор GCC (4.6.x), который является кластером по умолчанию. И системный администратор очень устойчив к тому, чтобы сделать доступным официально поддерживаемый компилятор gcc 4.4.x Matlab. (не уверен почему) Итак, вместо этого он предлагает использовать устаревший (около 2006 г.) компилятор gcc 3.4.6. Итак, мой вопрос: что если есть какие-то компромиссы или проблемы с использованием более старого компилятора gcc? Спектакль? 64-битная поддержка? Потокобезопасность (или действительно несколько параллельных вызовов)? так далее?

1 ответ

Решение

В основном вы упускаете предварительную реализацию функций C++11 (включая стандартизированные потоки, шаблоны с переменными параметрами и т. Д. http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport). Пока оба компилятора производят двоичные файлы, совместимые с ABI с MATLAB/Octave, на самом деле не существует никаких проблем безопасности для конкретной версии. Никакой компилятор c не может решить проблемы с общим состоянием для вас. Производительность будет немного другой, но не значимой. В любой версии компилятора я уверен, что в любом случае есть более оптимистичная реализация вашего кода. GCC 3.4 имеет 64-битную поддержку.

Другие вопросы по тегам