По-моему, у меня действительно простая проблема, но я не могу найти решение. Я включил файл "mathcalls.h" в один из моих проектов, так как мне нужно использовать метод pow(double, double)
. Поэтому я добавил путь к файлу...
... файл Make/options:
-Iusr/include/i386-linux-gnu/bits
... содержащий файл IDE (Qt Creator):
/usr/include/i386-linux-gnu/bits
Для включения я попробовал
#include "mathcalls.h"
#include <mathcalls.h>
но при создании моего проекта я получаю сообщение об ошибке:
/home/USER/SolverNEW/multiphaseEulerFoamNEW.C:46: error: mathcalls.h:
No such file or directory
Если посмотреть на это, кажется, что компилятор работает только в моем каталоге проектов, хотя я добавил путь к файлу? Также обратите внимание, что в "usr/include/i386-linux-gnu/bits" только root имеет полный доступ, другие просто уполномочены "получать доступ к файлам".
Как я могу решить эту проблему профессионально?
Профессиональный способ получить доступ к double pow(double x, double y)
:
#include <cmath>
или, в крайнем случае:
#include <math.h>
Тогда нет проблем с groveling вокруг подкаталогов в /usr/include
.
pow(double, double)
не найден с этими включениями, и я получаю ошибку:SQMOM/SourceTermIntegralFunctions/IntegralFunctionBeta.H:16: error: call of overloaded 'pow(double&, const double&)' is ambiguous. candidates are: /usr/include/i386-linux-gnu/bits/mathcalls.h:155:1: note: double pow(double, double) ...
Я также включил в Make / options:-Iusr/include
где можно найти-Iusr/include
pow()
илиstd::pow()
должен разрешиться, если вы не работаете с неисправной системой. Все, что находится вi386-linux-gnu/bits
в/usr/include
, не предназначено для непосредственного использования.