【发布时间】:2017-12-06 02:45:57
【问题描述】:
我正在尝试将Taglib 与Qt5.7 一起使用。但是我的程序崩溃了:
GDB 进程意外终止(退出代码 0)。
无法继续调试进程:程序没有运行。
在启动过程中程序退出,代码为 0xc0000135
构建 Taglib 时似乎没有任何错误消息。
*.pro 文件
QT += core
QT -= gui
CONFIG += c++11
TARGET = untitled2
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
TAGLIBDIR = $$quote(D:/D/Programmieren/Libraries/taglib)
INCLUDEPATH += $$quote( $${TAGLIBDIR}/include )
LIBS += -L$$quote($${TAGLIBDIR}/lib) -ltag
main.cpp
#include <QCoreApplication>
#include <taglib/tag.h>
#include <taglib/fileref.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
TagLib::FileRef ref("D:/D/Media/Musik/Disturbed/The Sickness/Disturbed - Stupify.mp3");
return a.exec();
}
编辑: 我使用 CMake-GUI 和本机 MinGW-Installation 创建了 Taglib-buildfiles,因为我没有设法使用 Qt 创建它们。我的操作系统是 Windows 10 x64 Education,我使用 Qt-Creator。我下载了最新的 Taglib-Release (1.11.1)
为什么我不能使用 CMake 创建构建文件: 首先,缺少一些 *dll 文件,我可以通过将这些文件从本机 MinGW-Installation 复制到 QT-MinGW 来解决这个问题。 其次,我找不到 CMake 所需的任何 *exe 文件,因此我无法从本机 MinGW-Installation 更改路径。
在调试模式下重建 Taglib 后,出现以下错误:
main.cpp:10:错误:未定义对 `_imp___ZN6TagLib8FileNameC1EPKc' 的引用
main.cpp:10:错误:未定义引用 `_imp___ZN6TagLib7FileRefC1ENS_8FileNameEbNS_15AudioProperties9ReadStyleE'
main.cpp:11:错误:未定义对 `_imp___ZNK6TagLib7FileRef3tagEv' 的引用
main.cpp:11:错误:未定义对 `_imp___ZNK6TagLib6String9toCStringEb' 的引用
main.cpp:11:错误:未定义对 `_imp___ZN6TagLib6StringD1Ev' 的引用
main.cpp:10: 错误:未定义引用 `_imp___ZN6TagLib7FileRefD1Ev'
main.cpp:11:错误:未定义对 `_imp___ZN6TagLib6StringD1Ev' 的引用
main.cpp:10: 错误:未定义引用 `_imp___ZN6TagLib7FileRefD1Ev'
collect2.exe:-1: 错误:错误:ld 返回 1 个退出状态
【问题讨论】:
-
如果你在 GDB 中输入
bt,你会得到一个回溯,这对于找出问题出在哪里非常有用。 -
@scotchi 我必须在哪里添加
bt?我猜Command line arguments在Run Settings中?我看不出与输出有任何差异。此外,由于程序在启动期间崩溃,我不确定这有什么帮助。 -
您粘贴的输出表明您正在使用 GDB(GNU 调试器)。 GDB 有一个控制台,您可以在其中输入命令——输入
bt会打印回溯。这不是你的程序的命令——它是 GDB 的命令。 -
@scotchi 谢谢,我找到了调试控制台。但是我不能输入任何命令,因为 GDB 崩溃了:
Can only evaluate during a debug session. -
您能否提供更多详细信息?您尝试在什么操作系统下运行 taglib,您使用什么 IDE?