為何vs2013安裝qt后,編譯不通過


如題,電腦是64位系統,安裝了vs2013,安裝了qt5.4和qt5.5,以及插件,但是用向導建立Qt Application工程,自動生成后,卻練級不通過,報錯如下

1>qttest.obj : error LNK2001: 無法解析的外部符號 "public: virtual struct QMetaObject const * __cdecl QTTest::metaObject(void)const " (?metaObject@QTTest@@UEBAPEBUQMetaObject@@XZ)
1>qttest.obj : error LNK2001: 無法解析的外部符號 "public: virtual void * __cdecl QTTest::qt_metacast(char const *)" (?qt_metacast@QTTest@@UEAAPEAXPEBD@Z)
1>qttest.obj : error LNK2001: 無法解析的外部符號 "public: virtual int __cdecl QTTest::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QTTest@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
1>C:\vsQT\QTTest\x64\Debug\\QTTest.exe : fatal error LNK1120: 3 個無法解析的外部命令


網上找了這個,也有人遇到過,說什么編譯出一個moc_xx.cpp就可以,我的工程能自動生成那個,但卻是空白的,估計就是這個導致的,想問下有沒有解決的辦法,至於說通過xx.h編譯生成moc_xx.cpp,我也試過,但這個moc_xx.cpp文件依然是空白無內容的,請問這個是什么原因?但是我建立的console工程,卻是可以使用的

9 个解决方案

#1


額,寫錯了一點,是鏈接不通過~

#2


我也遇到過這個問題,不生成moc文件。
我當時是建的QT4的工程,然后使用QT5打開,編譯,導致不能正常生成moc文件。
最后是重新使用QT5新建工程才正常。具體原因,估計就是QT版本沖突吧。

#3


引用 2 樓 u011417605 的回復:
我也遇到過這個問題,不生成moc文件。
我當時是建的QT4的工程,然后使用QT5打開,編譯,導致不能正常生成moc文件。
最后是重新使用QT5新建工程才正常。具體原因,估計就是QT版本沖突吧。

額,我本來安裝了5.4的,網上找了好多都是那個方法,關鍵是我照着那個方法一樣生成的是空白的moc文件,后來同事說下了最新的,我以為是我安裝有問題,就又安裝了最新的,但是依然報這個錯誤,不知道是不是64位的問題,難不成大家一安裝再設置一下就可以直接使用而且沒報錯?搗鼓了兩天沒結果~~~

#4


可能是moc失效了。

#5


我也是VS2013寫的。。 不過我寫的好好的啊,你安裝好后還需要搞一些設置。配置好了才能正常編寫代碼。 如何配置可以從百度搜素  QT vs2013 安裝等關鍵子。。。

#6


引用 5 樓 void_main_void 的回復:
我也是VS2013寫的。。 不過我寫的好好的啊,你安裝好后還需要搞一些設置。配置好了才能正常編寫代碼。 如何配置可以從百度搜素  QT vs2013 安裝等關鍵子。。。

額,肯定配置了,不配置根本就運行不了,我是鏈接出錯。而且是用向導生成的,一句代碼都還沒寫,就報鏈接錯誤; QT5.5 5.4都安裝了,都是是vs2013_64版本的,插件是qt-vs-addin-1.2.4-opensource, 操作系統是win7_64位,vs2013是Ultimate 2013 update4

#7


引用 4 樓 jiangcaiyang123 的回復:
可能是moc失效了。

我也覺得是,我查看了下QT的幫助手冊,moc_xx.cpp是應該有內容的,而我生成的卻是空白文檔~但是按照網上的方法用vs2013通過編譯xx.h的方式也是生成的是空白的文檔~~~~~

#8


額, 不好意思麻煩各位了,找來找去原來是cpp h文件加密的原因~~~~唉,坑……

#9


重新qmake一下就可以了吧。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com