Во-первых, set(CMAKE_REQUIRED_LIBRARIES "m")
включает в себя математическую библиотеку. Вы делаете то же самое в командной строке следующим образом: gcc test.c -lm
, который включает в себя библиотеку libm.so/.dll
CheckSymbolExists
- это модуль CMake, который предоставляет больше функциональных возможностей. Вы можете включить его в include(CheckSymbolExists)
После этого вы можете использовать функцию check_symbol_exists(...)
в CMake для проверки наличия символов в файлах заголовков.
Точный пример из учебника: check_symbol_exists(log "math.h" HAVE_LOG)
проверяет, является ли заголовок Файл math.h имеет символ (может быть функцией, константой или чем-то еще), который называется log. Если он есть, переменная CMake HAVE_LOG устанавливается в 1, в противном случае устанавливается в 0.