【发布时间】:2011-03-16 19:13:16
【问题描述】:
我正在开发一个 Qt 应用程序和一个 Qt 插件库。就我使用调试模式而言,一切正常。
尽管如此,当我尝试在发布模式下编译时,插件不会加载。我从 QPluginLoader 收到以下错误消息:
预期的构建密钥“Windows msvc release full-config”得到了“Windows msvc debug full-config”。
我在 Visual Studio 2005 中检查了我所有的项目配置设置,它们都处于发布模式并且没有调试符号。编译器的输出还指出:
1>------ 重建所有已启动:项目:ExtraAnalysisTools,配置:发布 Win32 ------ 1>删除项目“ExtraAnalysisTools”的中间和输出文件,配置“Release|Win32”
所以我不知道还能做什么。我尝试使用 Dependency Walker,但由于某种原因它无法加载文件(抱歉输出是日语...)
最后,这是我用来生成插件项目的 .pro 文件
模板 = 库
配置 += 插件
CONFIG += debug_and_release
包含路径 += ../
标题 = ExtraAnalysisTools.h
来源 = ExtraAnalysisTools.cpp
目标 = AKL_ExtraAnalysisTools
DESTDIR = ./build_pass:CONFIG(debug, debug|release) {
unix:目标 = $$join(TARGET,,,_debug)
否则:目标 = $$join(目标,,,d)
}
CONFIG(debug,debug|release):message("调试模式")
CONFIG(release,debug|release):message("发布模式")
消息(配置 = $$CONFIG)
更新:我现在使用这个 .pro 文件并得到以下输出:
[1] - 项目消息:调试模式
[2] - 项目MESSAGE:CONFIG = 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] - 项目消息:调试模式
[4] - 项目MESSAGE:CONFIG =法YACC warn_on调试UIC资源rtti_off exceptions_off stl_off incremental_off thread_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] - 项目消息:发布模式
[6] - 项目消息:CONFIG = lex yacc warn_on debug uic 资源 rtti_off exceptions_off stl_off incremental_off thread_off windows release ReleaseBuild Release build_pass qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe debug /strong> 共享 stl 异常 rtti mmx 3dnow sse sse2 def_files release ReleaseBuild Release build_pass plugin debug_and_release
我注意到发布模式下的 debug 标志,因此我还尝试将 CONFIG -= debug 和 CONFIG -= Debug debug 添加到我的 .pro 文件中(还结合了 += release 和+= debug_and_release)。但它没有用。
我希望有了这些额外的信息,我们可以更接近问题。
非常感谢!快把我逼疯了xP
【问题讨论】:
-
无论如何,我根本不掌握视觉工作室,所以也许我错过了项目设置中的一些内容
-
你是不是在同一个目录下构建了debug和release插件?
-
目前,是的,但我一次只构建一个,然后将其复制到我有调试和发布应用程序的目录。两个文件的大小也发生了变化,所以我用/不编译调试库......(至少 Qt 库......这只是我猜,因为我找不到在这台计算机上运行的一些类似 ldd 的程序) .
标签: c++ visual-c++ visual-studio-2005 plugins qt4