c++ - 将 -std=c++0x 与 gfortran 一起使用

标签 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:

同时,如果我返回到我的大型程序,并将 gfortran 替换为 g++ 或 gcc,我也会收到大量链接错误,首先是:

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

最佳答案

我现在将 g++ 与 -lgfortran 开关链接起来,这样我就可以使用 -std=c++0x 并且不会留下未定义的 c++ 或 fortran 符号。

关于c++ - 将 -std=c++0x 与 gfortran 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19804111/

相关文章:

python - Fortran double 转换为 Python float

c++ - 使用 shared_ptr 的找到/未找到指示

c++ - C++ 可执行文件中哪个部分存储全局 const 变量?

c++ - 含参数 (const T&, const T&) 或 (const char (&)[N], const char (&)[M]) 的重载模板的模糊调用

c++ - 模板/预处理器 hackery 可以用于支持参数列表中间的可变参数吗?

fortran - 使用不同的输入参数多次运行 Fortran 代码

c++ - 我们可以在 c++20 协程中使用 alloca() 或可变长度数组扩展吗?

c++ - 排序函数和优先级队列中的比较器 C++

c++ - this_thread::sleep_for 和 C++11 标准指定的计时时钟之间的关系吗?

compiler-errors - 错误: Unclassifiable statement at (1) using log() logarithm [duplicate]