QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1972|回复: 6

qte中包含<math.h>头文件问题请教

[复制链接]
发表于 2006-7-21 10:07:10 | 显示全部楼层 |阅读模式
我的一个程序在qt designer中编译成功了,可以用,可是到了qte下面就出现了问题:我用到了求绝对值函数abs,所以包含了头文件math.h在.cpp前面就用了#include <math.h>,可是到了qte下面编译就说我`abs' undeclared (first use this function),我想知道是怎么回事?我要怎么修改呢?请帮我解答一下,谢谢!
发表于 2006-7-21 10:30:19 | 显示全部楼层
先确定您的编译环境下有math.h这个头文件并且正确的被include。
没有的话就用宏或inline函数自己实现好了。
回复

使用道具 举报

 楼主| 发表于 2006-7-21 10:35:51 | 显示全部楼层
可是我在qt designer里已经可以用了,这个不是c++的标准头文件吗?不知道为什么到了qte里就不行了,我要怎么才能知道它会不会调用呢?我是新手可以多指点一下吗?非常感谢!
回复

使用道具 举报

发表于 2006-7-21 11:09:12 | 显示全部楼层
math.h是math库,是C库,不属于标准C++。使用math库编译时还要加上-lm。
你首先要弄清楚你的qt designer和qte的编译环境(如编译器及版本,所附带的库)的区别,这样才能移植啊。
如果没有正确包含math.h。编译器应该会提示您
error: math.h: No such file or directory
回复

使用道具 举报

 楼主| 发表于 2006-7-21 11:23:19 | 显示全部楼层
我编译的时候没有您说的这个提示,那就是包含了这个文件了,可以告诉我一下qt或者qte编译时调用的头文件路径吗?谢谢
回复

使用道具 举报

发表于 2006-7-21 12:42:54 | 显示全部楼层
正确。没有提示error: math.h: No such file or directory 说明已经包含了。
我查了一, man abs,abs在<stdlib.h>中定义,不需要math库。就是说C库自带了,不需要、#include <math.h>。
qte我不清楚,可能他的编译器是精简的,不包含abs。如果这样的话,你自己实现好了。

晕!
qt或者qte编译时调用的头文件路径是看你的编译环境怎么配置的啊,我怎么会知道。
回复

使用道具 举报

 楼主| 发表于 2006-7-21 15:51:08 | 显示全部楼层
非常感谢您的帮助,我自己写了一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 10:24 , Processed in 0.048504 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表