天嵌 ARM开发社区

 找回密码
 注册
查看: 3049|回复: 10

请教:make是总是提示:不能将 ‘int*’ 转换为 ‘QWidget*’,在 return 中

[复制链接]
testh 发表于 2010-6-30 09:28:19 | 显示全部楼层 |阅读模式
[root@localhost test-text]# make
g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include -

I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include -o main.o main.cpp
/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include/qdatetime.h:51: 警告:‘class QDate’ 有虚函数却没有虚析构函数
/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/../../src/libraries/qtopia/qcom.h:88: 警告:‘struct QUnknownInterface’

有虚函数却没有虚析构函数
/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/../../src/libraries/qtopia/qcom.h:100: 警告:‘struct QLibraryInterface’

有虚函数却没有虚析构函数
/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/../../src/libraries/qtopia/applicationinterface.h:49: 警告:‘struct

ApplicationInterface’ 有虚函数却没有虚析构函数
main.cpp: In function ‘QWidget* create_fktest(QWidget*, const char*, uint)’:
main.cpp:5: 错误:expected type-specifier before ‘fktest’
main.cpp:5: 错误:不能将 ‘int*’ 转换为 ‘QWidget*’,在 return 中
main.cpp:5: 错误:expected ‘;’ before ‘fktest’
main.cpp:5: 错误:‘fktest’ 在此作用域中尚未声明
make: *** [main.o] 错误 1

==================================
ui文件见附件,把后缀改为*.ui就行了
其他的makefile,main.cpp这些都是按照TQ2440的手册修改相关文件名后生成的。这个ui文件很简单,就是只有一个text的对话框和一个按扭,硬是编译不过,请各位帮我看一下有什么问题,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
亚瑟王 发表于 2010-6-30 21:39:37 | 显示全部楼层
你把你整个源码发上来吧。
 楼主| testh 发表于 2010-7-1 15:51:52 | 显示全部楼层
本帖最后由 testh 于 2010-7-1 15:55 编辑

2# 亚瑟王


我重新建立了一个简单的ui界面,我选用的是new-->Dialog然后放了一个LineEdit就没有了,其他的按照手册创建ui2cpp等,一直到执行makefile总是提示类似这样的:
ApplicationInterface’ 有虚函数却没有虚析构函数
main.cpp: In function ‘QWidget* create_fktest(QWidget*, const char*, uint)’:
main.cpp:5: 错误:expected type-specifier before ‘fktest’
main.cpp:5: 错误:不能将 ‘int*’ 转换为 ‘QWidget*’,在 return 中
main.cpp:5: 错误:expected ‘;’ before ‘fktest’
main.cpp:5: 错误:‘fktest’ 在此作用域中尚未声明
make: *** [main.o] 错误 1


附:
我的ui文件,这个是主文件,其他的都是根据这个生成的。建立的环境也是按照手册上在/opt下建立的。
  1. <!DOCTYPE UI><UI>
  2. <class>Form1</class>
  3. <widget>
  4.     <class>QDialog</class>
  5.     <property stdset="1">
  6.         <name>name</name>
  7.         <cstring>Form1</cstring>
  8.     </property>
  9.     <property stdset="1">
  10.         <name>geometry</name>
  11.         <rect>
  12.             <x>0</x>
  13.             <y>0</y>
  14.             <width>596</width>
  15.             <height>480</height>
  16.         </rect>
  17.     </property>
  18.     <property stdset="1">
  19.         <name>caption</name>
  20.         <string>Form1</string>
  21.     </property>
  22.     <widget>
  23.         <class>QLineEdit</class>
  24.         <property stdset="1">
  25.             <name>name</name>
  26.             <cstring>LineEdit1</cstring>
  27.         </property>
  28.         <property stdset="1">
  29.             <name>geometry</name>
  30.             <rect>
  31.                 <x>140</x>
  32.                 <y>80</y>
  33.                 <width>127</width>
  34.                 <height>25</height>
  35.             </rect>
  36.         </property>
  37.         <property stdset="1">
  38.             <name>text</name>
  39.             <string>23.45</string>
  40.         </property>
  41.     </widget>
  42. </widget>
  43. </UI>
复制代码
  1. [Desktop Entry]
  2. Version=1.0
  3. Name=Lio Test
  4. #comment=EmbedSky First Qt program
  5. Exec=lio
  6. Icon=lio
  7. Type=Applicatio
复制代码
[local]2[/local]
  1. #############################################################################
  2. # Makefile for building lio
  3. # Generated by tmake at 15:34, 2010/07/01
  4. #     Project: lio
  5. #    Template: app
  6. #############################################################################

  7. ####### Compiler, tools and options

  8. CC        =        gcc
  9. CXX        =        g++
  10. CFLAGS        =        -pipe -Wall -W -O2 -DNO_DEBUG
  11. CXXFLAGS=        -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG
  12. INCPATH        =        -I$(QTDIR)/include -I$(QPEDIR)/include
  13. LINK        =        g++
  14. LFLAGS        =       
  15. LIBS        =        $(SUBLIBS) -L$(QPEDIR)/lib -L$(QTDIR)/lib -lqpe -lqtopia -lqte
  16. MOC        =        $(QTDIR)/bin/moc
  17. UIC        =        $(QTDIR)/bin/uic

  18. TAR        =        tar -cf
  19. GZIP        =        gzip -9f

  20. ####### Files

  21. HEADERS =        lio.h
  22. SOURCES =        lio.cpp \
  23.                 main.cpp
  24. OBJECTS =        lio.o \
  25.                 main.o \
  26. INTERFACES =        lio.ui
  27. UICDECLS =        lio.h
  28. UICIMPLS =        lio.cpp
  29. SRCMOC        =        moc_lio.cpp
  30. OBJMOC        =        moc_lio.o
  31. DIST        =       
  32. TARGET        =        $(QPEDIR)/image/opt/Qtopia/bin/lio
  33. DESKTOP =        $(QPEDIR)/image/opt/Qtopia/apps/EmbedSky/lio.desktop
  34. ICON        =        $(QPEDIR)/image/opt/Qtopia/pics/lio.png
  35. INTERFACE_DECL_PATH = .

  36. ####### Implicit rules

  37. .SUFFIXES: .cpp .cxx .cc .C .c

  38. .cpp.o:
  39.         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

  40. .cxx.o:
  41.         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

  42. .cc.o:
  43.         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

  44. .C.o:
  45.         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

  46. .c.o:
  47.         $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

  48. ####### Build rules


  49. all: $(TARGET)
  50.         cp -f lio.desktop $(DESKTOP)
  51.         cp -f lio.png $(ICON)

  52. $(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
  53.         $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)

  54. moc: $(SRCMOC)

  55. tmake: Makefile

  56. Makefile: lio.pro
  57.         tmake lio.pro -o Makefile

  58. dist:
  59.         $(TAR) lio.tar lio.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST)
  60.         $(GZIP) lio.tar

  61. clean:
  62. #        -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET)
  63.         -rm -f $(OBJECTS) $(OBJMOD) $(DESKTOP) $(ICON) $(TARGET)
  64.         -rm -f *~ core

  65. ####### Sub-libraries


  66. ###### Combined headers


  67. ####### Compile

  68. main.o: main.cpp \
  69.                 lio.h \
  70.                 /opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include/qtopia/qpeapplication.h

  71. lio.h: lio.ui
  72.         $(UIC) lio.ui -o $(INTERFACE_DECL_PATH)/lio.h

  73. lio.cpp: lio.ui
  74.         $(UIC) lio.ui -i lio.h -o lio.cpp

  75. lio.o: lio.cpp \
  76.                 lio.h \
  77.                 lio.ui

  78. moc_lio.o: moc_lio.cpp \
  79.                 lio.h

  80. moc_lio.cpp: lio.h
  81.         $(MOC) lio.h -o moc_lio.cpp

复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| testh 发表于 2010-7-1 16:12:35 | 显示全部楼层
我知道了,是我没有使用root的权限操作,应该从ui2cpp开始就使用root权限的,所以执行makefile时出现下面这样的错误:
ApplicationInterface’ 有虚函数却没有虚析构函数
main.cpp: In function ‘QWidget* create_fktest(QWidget*, const char*, uint)’:
main.cpp:5: 错误:expected type-specifier before ‘fktest’
main.cpp:5: 错误:不能将 ‘int*’ 转换为 ‘QWidget*’,在 return 中
main.cpp:5: 错误:expected ‘;’ before ‘fktest’
main.cpp:5: 错误:‘fktest’ 在此作用域中尚未声明
make: *** [main.o] 错误 1


我想修改一下相关的文件,要不这样用root的身份开进行开发的话太危险了,现在的问题是我还没有找到该修改哪些文件才能实现使用普通用户身份可以正常进行开发执行qt2的命令,亚瑟王或各位朋友可以给些提示吗?谢谢
 楼主| testh 发表于 2010-7-2 07:29:38 | 显示全部楼层
我后来又重新测试了一下,好像又和root权限没有关系,那这样的话,这个问题有不知道如何解决了
亚瑟王 发表于 2010-7-2 11:49:43 | 显示全部楼层
你贴出来的源码里面没有main.cpp源码,而你出错的内容又是main.cpp,你不给出来出错的源码,而给出别的源码我没法帮你解决问题啊。
 楼主| testh 发表于 2010-7-2 11:59:10 | 显示全部楼层
我记着我都贴了啊,怎么都没了。。。
不好意思,我再重新开个帖子贴一下
亚瑟王 发表于 2010-7-3 21:31:07 | 显示全部楼层
就这个帖子吧。
shabby 发表于 2010-8-28 21:45:51 | 显示全部楼层
这个问题是怎么解决的?困扰我很久了啊
colourful987 发表于 2011-10-23 23:14:41 | 显示全部楼层
同样问题!!!!!!!!!!!!!!!!
jxhui23 发表于 2012-9-16 13:20:04 | 显示全部楼层
楼主后来怎么解决的呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-17 02:16 , Processed in 1.046875 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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