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