c++ - 与 C++ 库链接时,如何在 OCaml 编译中抑制 g++ 弃用警告?

标签 c++ gcc build ocaml gcc-warning

当编译一个链接到需要 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/

相关文章:

java - 简单的 java jni 教程失败

c++ - 在 64 位机器中无法使用 getsystemdirectory() 获取正确的路径

c++ - 使用String.resize()后,为什么字符串的大小没有变化?

file - webpack 可以报告哪个文件在 watch 模式下触发了编译吗?

c++ - 我可以在 Visual Studio 2008 中从 Win32 解决方案配置(反之亦然)编译 x64 exe 吗?

C++ 检查前 5 个或后 5 个元素中的任何一个是否等于一个值

c - 为什么 clang 无法展开循环(gcc 展开)?

c - 函数定义和外部声明不同;但是 GCC 甚至没有警告并通过了编译

c++ - 文字和 constexpr 函数,编译时评估

r - 如何使用RStudio在现有目录中构建软件包