0
我有一個非常簡單的問題,我想但是找不到解決方案。我已將「mathcalls.h」文件包含到我的一個項目中,因爲我需要使用它的pow(double, double)
方法。因此,我已經添加了文件路徑爲...包含在生成/選項文件中的路徑
...的製作/選項文件:
-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擁有完全訪問權限,其他權限只被授權「訪問文件」。
我該如何專業解決這個問題?
兩者都包括工作,但仍然沒有找到這些包含的方法'pow(double,double)',我得到錯誤:'SQMOM/SourceTermIntegralFunctions/IntegralFunctionBeta.H:16:error:call of overload'pow double&,const double&)'是不明確的。候選人是: /usr/include/i386-linux-gnu/bits/mathcalls.h:155:1:note:double pow(double,double)...'。我還包含在make/options中:'-Iusr/include',其中可以找到math.h。 – Streight
令人費解。除非你正在處理有缺陷的系統,否則'pow()'或'std :: pow()'應該解決。 '/ usr/include'下'i386-linux-gnu/bits'中的任何內容都不能直接使用。 –
嘗試此代碼:'#include #include int main() {double d = std :: pow(3.14,2.78); std :: cout << d <<「\ n」;返回0; }'。它用'std :: pow'和'pow'完全爲我編譯;後者讓我感到驚訝。我正在使用'g ++ -O3 -g -std = C++ 11 -Wall -Wextra -Werror math.cc -o math'編譯Ubuntu 13.10 VM。請嘗試獨立代碼,不要有任何'-I'選項。如果可行,請嘗試添加'-I'選項,直到出現問題。然後刪除'-I'選項。我想知道是否有一個'-I'增加了一個文件來提前匹配''或''。 –