sqrt от math.h вызывает ошибку компоновщика “неопределенная ссылка на sqrt” только, когда аргументом не является константа

В контексте форума программирования мы обычно не думаем о программисте, также нуждающемся в части приложения базы данных. Обычно программист хочет использовать их собственную среду разработки для бизнес-логики и фронтэнда, и просто использовать хранилище, запрос, извлечение и возможности обработки данных базы данных.

, Если Вы действительно хотите все те другие вещи, тогда Вы говорите о намного большей и более сложной среде выполнения. Вы не собираетесь находить что-либо, что это больше 'легко'. Даже сам Доступ MS больше не квалифицирует, потому что это - едва легкий вес. Это просто удачно в этом, у большого количества пользователей мог бы уже быть он, делание его появляется , чтобы быть легким весом.

Это не означает, что Вы ничего не найдете. Просто то, что это вряд ли будет иметь тот же уровень зрелости или распределения как Доступ, тем более, что базовый механизм доступа уже испекся в Windows.

6
задан Ciro Santilli 新疆改造中心法轮功六四事件 15 May 2015 в 20:18
поделиться

1 ответ

If you look at the output of the compiler in the case where you used sqrt(10.2), I'll bet you see that a call to sqrt() isn't actually made.

This happens because GCC recognizes several functions that it can treat specially. This gives it the ability to do certain optimizations, in this case Constant folding. Such special functions are called Built-ins.

In the case where it must link to the math library (because you're calling it with a variable), you need to link it explicitly. Some operating systems/compilers do it for you, which is why you might not have noticed in the past.

17
ответ дан 8 December 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: