Проблема с включением CMake stdlib

#c #cmake #mingw

#c #cmake #mingw

Вопрос:

Мне нужно скомпилировать проект на C с использованием CMake и MinGW-w64. Проект зависит от zlib, поэтому CMakeLists.txt содержит:

 find_package(ZLIB REQUIRED)
  

В ZLIB произойдет сбой CMake, если я не добавлю следующий путь к CMAKE_PREFIX_PATH:

 C:/Dev/mingw64-8.1.0/x86_64-w64-mingw32/include
  

С добавлением этого пути CMake работает нормально. Но я получаю следующую ошибку компиляции:

 #include_next <stdlib.h>
              ^~~~~~~~~~
C:/Dev/mingw64-8.1.0/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c  /cstdlib:75:15:
fatal error: stdlib.h: No such file or directory
  

После некоторого поиска по поводу этой последней ошибки я обнаружил, что могу исправить ее, отредактировав файл CMake includes_CXX.rsp и либо:

  • Удалить -isystem C:/Dev/mingw64-8.1.0/x86_64-w64-mingw32/include
  • Или измените -isystem на -I

Итак, в основном я должен передать путь включения в CMake, чтобы он нашел zlib.h и удалил этот путь из файлов, созданных CMake… Есть ли правильное решение?

Спасибо!