Использование -std = c ++ 0x с gfortran

У меня есть большая программа, которая использует C, C ++ и Fortran. Я всегда считал, что проще всего сделать так, чтобы это правильно связывалось с помощью интерфейса gfortran, хотя мой главный — C. gfortran знает о многих специальных вещах Фортрана, которые нужно связать.

Теперь, однако, мне нужно включить unordered_map, который с моим компилятором (gcc 4.4.1 на Mac OS X 10.7.5), кажется, требует -std=c++0x вариант. Я обнаружил и проверил это, скомпилировав небольшую тестовую программу только на C ++.

Но если я использую -std=c++0x опция с gfortran, которая выдает огромное количество ошибок ссылок, начиная с:

Undefined symbols for architecture i386:
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::data() const", referenced from:

Между тем, если я возвращаюсь к своей большой программе и заменяю gfortran на g ++ или gcc, я также получаю огромное количество ошибок ссылок, начиная с:

Undefined symbols for architecture i386:
"__gfortran_compare_string", referenced from:

2

Решение

Теперь я связываю с помощью g ++ с ключом -lgfortran, и это позволяет мне использовать -std = c ++ 0x и не оставляет меня с неопределенными символами c ++ или fortran.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]