我正在開發一個Qt應用程序和一個Qt插件庫。就我使用的調試模式而言,一切正常。Visual Studio編譯的Qt插件不能在發佈模式下加載
儘管如此,當我嘗試在發佈模式下編譯插件不加載。我得到了以下錯誤消息從QPluginLoader:
期望的建造關鍵的「Windows MSVC釋放全配置」得到「的Windows MSVC調試全配置」。
我已經檢查了我在Visual Studio 2005中的所有項目配置設置,它們都處於發佈模式並且沒有調試符號。另外,編譯器的輸出指出:
1> ------重建全部開始:項目:ExtraAnalysisTools,配置:發行的Win32 ------ 1>刪除中間和輸出文件項目'ExtraAnalysisTools',配置'Release | Win32'
所以我不知道該怎麼做。我試圖用的Dependency Walker,但由於某種原因,無法加載文件(對不起輸出是在日本...)
最後,這裏是.pro文件我用它來生成插件項目
TEMPLATE = LIB
CONFIG + =插件
CONFIG + = debug_and_release
INCLUDEPATH + = ../
HEADERS = ExtraAnalysisTools.h
SOURCES = ExtraAnalysisTools.cpp
TARGET = AKL_ExtraAnalysisTools
DESTDIR = ./build_pass:CONFIG(調試,調試|釋放){
UNIX:TARGET = $$加入(TARGET ,,, _調試)
其他:TARGET = $ $加入(TARGET ,,, d)
}
CONFIG(調試,調試|發佈):消息( 「調試模式」)
CONFIG(發佈,調試|發佈):消息( 「發行模式」)
消息(CONFIG = $$ CONFIG)
更新:我現在使用這個。親文件,並得到下面的輸出:
[1] - 悄悄話:調試模式
[2] - 悄悄話:CONFIG =的lex yacc的warn_on調試UIC資源rtti_off exceptions_off stl_off incremental_off thread_off窗口QT warn_on釋放增量平link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe調試共享STL例外RTTI MMX 3DNOW SSE SSE2 def_files插件debug_and_release
[3] - 項目MESSAGE:調試模式
[4] - 項目MESSAGE:CONFIG =法YACC warn_on調試UIC資源rtti_off exceptions_off stl_off incremental_off線程_off窗口調試DebugBuild調試build_pass QT warn_on釋放增量平坦link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe調試共享STL例外RTTI MMX 3DNOW SSE SSE2 def_files調試DebugBuild調試build_pass插件debug_and_release
[5] - 項目MESSAGE:釋放模式
[6 ] - 悄悄話:CONFIG = YACC法warn_on 調試 UIC資源rtti_off exceptions_off stl_off incremental_off thread_off的Windows版本ReleaseBuild發佈build_pass QT warn_on釋放增量平link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe 調試 SH ARED STL例外RTTI MMX 3DNOW SSE SSE2 def_files釋放ReleaseBuild發佈build_pass插件debug_and_release
我注意到調試的發佈模式標誌,所以我也嘗試添加CONFIG - =調試和CONFIG - =調試調試到我的.pro文件(也結合+ = release和+ = debug_and_release)。但它沒有奏效。
我希望通過這些額外的信息我們可以更加接近這個問題。
非常感謝!這讓我瘋狂xP
無論如何,我根本不掌握visual studio,所以也許我錯過了項目設置中的某些東西 – lokifacio 2010-07-16 06:32:19
您是否在同一個目錄下創建了調試和發佈插件? – Lars 2010-07-16 07:05:58
目前,是的,但我一次只創建一個,然後將其複製到我有調試和發佈應用程序的目錄中。 此外,這兩個文件的大小發生了變化,所以我將它們編譯爲/ out調試庫......(至少Qt庫......這只是我猜測,因爲我找不到在此計算機上運行的一些類似ldd的程序)。 – lokifacio 2010-07-16 07:39:16