6

-cc g++GCC> = 4.4の引数を使用してC++標準ライブラリ(LLVMのOCamlバインディングなど)を必要とするライブラリにリンクするOCamlプロジェクトをコンパイルするとocamlc、次の形式の非常に冗長な警告が生成されます。

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

これらの警告を削除するにはどうすればよいですか?

4

2 に答える 2

7

ocamlcこの問題は、新しいバージョンのGCCによってC++モードでコンパイルされたときに警告をトリガーする中間Cコードを生成することに起因します。ただし、この生成されたコードはC++としてコンパイルする必要はありません。ラップされたC++ライブラリに対してビルドするこの一般的なケースに合格する唯一の理由-cc g++は、C++標準ライブラリの依存関係がビルドされていることを確認することです。ocamlc中間コードのコンパイルにC++フロントエンドを使用しないようにする、より簡単なソリューションは次のとおりです。

-cclib -lstdc++

これにより、生成されたCコードを強制的にリンクしますがlibstdc++、プレーンCモードでコンパイルします。

于 2011-05-14T22:11:31.797 に答える
2

私はあなたがただできると思います

#pragma GCC diagnostic ignored "-Wwrite-strings"

これを抑制するためにC++で。

于 2011-08-09T14:23:34.700 に答える