使用-std = c ++ 0x和gfortran

时间:2013-11-06 04:26:22

标签: c++ c++11 gfortran

我有一个使用C,C ++和Fortran的大型程序。我总是发现最简单的方法是使用“gfortran”前端正确链接,即使我的主要是C. gfortran知道很多需要链接的Fortran特殊内容。

但是,现在我需要包含unordered_map,我的编译器(Mac OS X 10.7.5上的gcc 4.4.1)似乎需要-std=c++0x选项。我通过仅使用C ++编译一个小测试程序来发现并验证了它。

但是如果我在gfortran中使用-std=c++0x选项,则会产生大量的链接错误,从以下开始:

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

同时,如果我回到我的大型程序,并用g ++或gcc替换gfortran,我也会收到大量的链接错误,从以下开始:

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

1 个答案:

答案 0 :(得分:2)

我现在使用g ++和-lgfortran开关进行链接,这让我使用-std = c ++ 0x并且不会给我留下未定义的c ++或fortran符号。