我有使用 C、C++ 和 Fortran 的大型程序。我一直发现使用“gfortran”前端最容易正确链接,即使我的主要语言是 C。gfortran 知道很多需要链接的 Fortran 特殊内容。
但是,现在我需要包含unordered_map
,而我的编译器(Mac OS X 10.7.5 上的 gcc 4.4.1)似乎需要该-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:
同时,如果我回到我的大程序,并用 g++ 或 gcc 替换 gfortran,我也会得到大量的链接错误,首先是:
Undefined symbols for architecture i386:
"__gfortran_compare_string", referenced from: