• 6397阅读
  • 9回复

请教一个头文件的问题 [复制链接]

上一主题 下一主题
离线donylnx
 
只看楼主 倒序阅读 楼主  发表于: 2006-07-20
我的一个程序在qt designer中编译成功了,可以用,可是到了qte下面就出现了问题:我用到了求绝对值函数abs,所以包含了头文件math.h在.cpp前面就用了#include <math.h>,可是到了qte下面编译就说我`abs' undeclared (first use this function),我想知道是怎么回事?我要怎么修改呢?请帮我解答一下,谢谢!
[ 此贴被XChinux在2006-07-20 23:47重新编辑 ]
离线igoo
只看该作者 1楼 发表于: 2006-07-21
猜测:
是不是要用
#include<math> //cpp的都用新的头文件,不带.h的,虽然最后实际用的可能还是math.h

另外确认一下是不是真在math.h中,我记得有些貌似数学的函数在stdlib中
离线donylnx
只看该作者 2楼 发表于: 2006-07-21
谢谢你的答复,应该是在这个文件里的,因为我在qt中已经编译成功可以用的,现在到了qte中才不能编译,不知道两个软件对头文件的要求是不是有差别?
离线igoo
只看该作者 3楼 发表于: 2006-07-21
不知道啥是qte
离线donylnx
只看该作者 4楼 发表于: 2006-07-21
可以告诉我一下这个在qt中调用的头文件是在哪个目录里呢?我用的是red hat9,我可以把它靠到软件找到的位置吗?
离线donylnx
只看该作者 5楼 发表于: 2006-07-21
我看到qte中的例子也有包含头文件<math.h>的,我可以编译通过,难道是abs函数的问题,请教一下,我想用这个函数的话是不是包含在这个头文件中?
离线igoo
只看该作者 6楼 发表于: 2006-07-21
如果如果是工程文件很多有可能是文件包含的次序问题
大不了自己写一个abs

typedef unsigned int int32;
int32 abs(int i)
{
  if(i <0)
  i *= -1;
return i;
}
离线donylnx
只看该作者 7楼 发表于: 2006-07-21
谢谢你的回复,可是我不知道它问题出在哪总是不舒服,就想搞明白一下,
离线stylev
只看该作者 8楼 发表于: 2006-07-21
#include <cmath>

using namespace std;

int main(int argc, char **argv)
{
    //abs()......试试
MSN: ediwon@msn.com
QQ Group: 24678212
----------------------------
离线donylnx
只看该作者 9楼 发表于: 2006-07-21
不行呀,改过了是这样的错误: make
g++ -c -I/root/qt-2.3.7/include -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-default-inline -Wall -W -DNO_DEBUG -o showimg.o showimg.cpp
showimg.cpp: In member function `bool ImageViewer::Fenge()':
showimg.cpp:173: call of overloaded `abs(int)' is ambiguous
/usr/include/c++/3.2.2/cmath:87: candidates are: double std::abs(double)
/usr/include/c++/3.2.2/cmath:91:           float std::abs(float)
/usr/include/c++/3.2.2/cmath:95:           long double std::abs(long
  double)
快速回复
限100 字节
 
上一个 下一个