2012-07-10 60 views
0

我正在嘗試爲Qt項目構建MySQL插件。我正在按照其他地方給出的說明進行操作,但看起來由qmake生成的makefile有錯誤,並且生成DLL的nmake失敗。用於Qt 4.8.0的MySQL插件構建失敗

有沒有人有替代程序?

並沒有人知道爲什麼我們不能爲此下載MySQL DLL嗎?爲什麼每個人都必須建立它?

這是過程;

qmake "INCLUDEPATH+=c:/'Program Files'/MySQL/'Connector C 6.0.2'/include" "LIBS+=-Lc:/'Program Files'/MySQL/'Connector C 6.0.2'/lib/debug " mysql.pro 

c:\QtSDK\QtSources\4.8.0\src\plugins\sqldrivers\mysql>nmake debug 

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 
Copyright (C) Microsoft Corporation. All rights reserved. 
    "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" -f Makefile.Debug 

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 

Copyright (C) Microsoft Corporation. All rights reserved. 

    rc -D_DEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3 
DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -fo debug\qsqlmysqld_resource.res qsqlmysqld_resource.rc 

'rc' is not recognized as an internal or external command, 
operable program or batch file. 
NMAKE : fatal error U1077: 'rc' : return code '0x1' 
Stop. 
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe"' : return code '0x2' 
Stop. 
+0

「爲什麼每個人都必須構建它?因爲不是每個人都使用Windows。發佈構建錯誤。 – cmannett85 2012-07-10 21:08:11

+0

上面添加的步驟。謝謝! – 2012-07-11 01:36:36

回答

0

雖然我解決了使用nmake構建插件的問題,但並未產生Qt認可的插件。

相反,我用建立和QtCreator插件包含在項目文件(你的Qt源文件夾路徑/ src目錄/插件/ sqldrivers/MySQL的

的.pro文件必須被修改,以使包括和lib路徑匹配你的MySQL安裝.pro文件中的條目包含了路徑中的空格,但是這並沒有生成,我不得不從MySQL路徑中取出所有空格來建立它。將「Program Files(x86)」複製到C:中,並從文件夾名稱中刪除空格。

接下來,調試版本指定-llibmysqld,它似乎不再存在,我將其更改爲-llibmysql(與釋放),然後機器人h dlls構建良好。

我用Qt Creator 2.6.2,Qt 4.8.4。由此產生的DLL正在使用Visual Studio 2010和Windows 7下的 構建的Qt項目。

2

我會冒險猜測你是從正常的命令提示符/窗口而不是Visual Studio版本構建的。這意味着可能不是所有的路徑都設置正確,並且找不到rc命令。

所以嘗試再次建立,但這次從Visual Studio command prompt。例如,您可以在開始菜單的Visual Studio條目中的「Visual Studio Tools」下找到它。

您也可以運行VCVARS32在常規命令提示符下設置所有適當的路徑,但實際上並不需要。

+0

謝謝你。這是正確的。但是,使用VS命令提示符會導致許多未定義的引用,例如「mysql_stmt_result_metadata4」。在以前的版本中嘗試使用4.7.1或4.7.3會給出不同的未定義引用,但大致相同。我也嘗試用mingw32和QT控制檯進行構建。他們給出了同樣的錯誤。 – 2012-07-12 21:45:25