当编译一个链接到需要 C++ 标准库(例如 LLVM 的 OCaml 绑定(bind))的库的 OCaml 项目时,使用 -cc g++
参数到 ocamlc
和 GCC >= 4.4生成形式极其冗长的警告:
warning: deprecated conversion from string constant to ‘char*’
如何删除这些警告?
最佳答案
问题源于 ocamlc
生成中间 C 代码,当较新版本的 GCC 在 C++ 模式下编译时会触发警告。但是这个生成的代码不需要编译为 C++。对于针对包装的 C++ 库构建的这种常见情况,通过 -cc g++
的唯一原因是确保构建 C++ 标准库依赖项。更简单的解决方案可以避免使用 C++ 前端来编译 ocamlc
中间代码,它很简单:
-cclib -lstdc++
强制将生成的 C 代码与 libstdc++
链接,同时仍以纯 C 模式编译它。
关于c++ - 与 C++ 库链接时,如何在 OCaml 编译中抑制 g++ 弃用警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6005103/