В GCC скомпилируйте с-Wno-unknown-pragmas
В Visual Studio MS 2005 (этот вопрос не отмечен с gcc, таким образом, я добавляю это для ссылки), можно отключить глобально в Настройках Проекта-> C/C++> Усовершенствованный. Войдите 4068 в, "Отключают Определенные Предупреждения"
, или можно добавить это к любому файлу для отключения предупреждений локально
#pragma warning (disable : 4068 ) /* disable unknown pragma warnings */
Вот мое наблюдение, во-первых необходимо включать заголовок math.h
как sqrt()
функция, объявленная в math.h
заголовочный файл. Для, например,
#include <math.h>
, во-вторых, если Вы читаете страницу руководства sqrt, Вы заметите эту строку Ссылка с-lm.
#include <math.h> /* header file you need to include */
double sqrt(double x); /* prototype of sqrt() function */
Link with -lm. /* Library linking instruction */
, Но приложение все еще говорит что неопределенная ссылка на sqrt. Вы видите какую-либо проблему здесь?
Ошибка компилятора корректна, поскольку Вы не связали свою программу с библиотекой lm
& компоновщик неспособен найти ссылку sqrt()
, необходимо связать ее явно. Для, например,
gcc -Wall -Wextra -Werror -pedantic test.c -lm