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

时间:2011-05-14 22:11:06

标签: c++ gcc build ocaml gcc-warning

编译一个OCaml项目,该项目链接需要C ++标准库的库(例如LLVM的OCaml绑定),使用-cc g++ ocamlc参数与GCC> = 4.4生成非常详细的警告形式:

warning: deprecated conversion from string constant to ‘char*’

如何删除这些警告?

2 个答案:

答案 0 :(得分:7)

问题源于ocamlc生成中间C代码,当使用较新版本的GCC在C ++模式下编译时会触发警告。但是这个生成的代码不需要编译为C ++。对于这种针对包装的C ++库构建的常见情况,传递-cc g++的唯一原因是确保构建C ++标准库依赖项。避免使用C ++前端编译ocamlc中间代码的简单解决方案很简单:

-cclib -lstdc++

强制将生成的C代码与libstdc++相关联,同时仍以纯C模式编译它。

答案 1 :(得分:2)

我认为你可以做到

#pragma GCC diagnostic ignored "-Wwrite-strings"

在C ++中压制这个。