Как можно подавить предупреждения об устаревании g ++ при компиляции OCaml при связывании с библиотеками C ++? - PullRequest
6 голосов
/ 15 мая 2011

При компиляции проекта OCaml, который связывается с библиотеками, требующими стандартной библиотеки C ++ (например, привязки OCaml LLVM), используя аргумент -cc g++ для ocamlc с GCC> = 4.4, генерируется чрезвычайно подробное предупреждение в виде:

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

Как можно удалить эти предупреждения?

Ответы [ 2 ]

7 голосов
/ 15 мая 2011

Проблема связана с ocamlc генерацией промежуточного кода C, который вызывает предупреждения при компиляции в режиме C ++ новыми версиями GCC. Но этот сгенерированный код не нужно компилировать как C ++. Единственная причина для передачи -cc g++ для этого распространенного случая построения с использованием обернутой библиотеки C ++ состоит в том, чтобы убедиться, что зависимости стандартной библиотеки C ++ созданы. Более простое решение, которое не использует внешний интерфейс C ++ для компиляции промежуточного кода ocamlc, просто:

-cclib -lstdc++

, который принудительно связывает сгенерированный код C с libstdc++, в то же время компилируя его в обычном режиме C.

2 голосов
/ 09 августа 2011

Я думаю, вы можете просто сделать

#pragma GCC diagnostic ignored "-Wwrite-strings"

В C ++ для подавления этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...