问题描述
我的应用程序可以在 发布 模式下构建并正常运行。但是,在 Debug 模式下,我的应用程序崩溃了。尝试使用调试器查明崩溃原因时,会收到此类错误:
Qt Creator意外退出CDB CDB流程终止
问题可能是什么原因造成的?
更新
我以 Debug 模式构建和部署了应用程序,然后尝试通过以下命令运行可执行文件:
C:\Users\m3\Documents\deployment_folder>.\application.exe
我收到此消息:
由于某种原因,可以在发布模式下找到tbb.dll
,而在 debug 模式下找不到tbb_debug.dll
。尽管所有TBB DLL都位于同一目录中。不知道为什么...
更新
我正在使用QMake在我的项目中添加TBB,如下所示:
INCLUDEPATH += deps/tbb-2020.3-win/tbb/include
# Looks like absolute path works for LIBS,but NOT relative path
win32: CONfig (release,debug|release): {
LIBS += -LC:\Users\m3\repos\myapp\deps\tbb-2020.3-win\tbb\lib\intel64\vc14 \
-ltbb \
-ltbb_preview \
-ltbbbind \
-ltbbmalloc \
-ltbbmalloc_proxy \
-ltbbproxy
} else: win32: CONfig (debug,debug|release): {
LIBS += -LC:\Users\m3\repos\myapp\deps\tbb-2020.3-win\tbb\lib\intel64\vc14 \
-ltbb_debug \
-ltbb_preview_debug \
-ltbbbind_debug \
-ltbbmalloc_debug \
-ltbbmalloc_proxy_debug \
-ltbbproxy_debug
} else: unix: { # Linux and mac
# Todo: add correct path to LIBS +=
}
解决方法
可以通过手动复制应用程序可执行文件旁边的TBB DLL来解决该问题。
从... /tbb-2020.3-win/tbb/bin/intel64/vc14/*.dll
复制到可执行位置。
关于释放模式为何起作用
我认为某些第三方应用程序已经向Maya PATH环境变量添加了tbb.dll
。但是tbb_debug.dll
不会由任何应用程序 添加到PATH。只是一个猜测...