使用 Taglib 的程序崩溃
Programm crashes using Taglib
我正在尝试将 Taglib
与 Qt5.7
一起使用。但是我的程序崩溃了:
The GDB process terminated unexpectedly (exit code 0).
Cannot continue debugged process: The program is not being run.
During startup program exited with code 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 创建它们。我的 OS 是 Windows 10 x64 Education,我使用 Qt-Creator。我下载了最新的 Taglib-Release (1.11.1)
为什么我不能使用 CMake 创建构建文件:
首先缺少一些 *dll 文件,我可以通过将这些文件从本机 MinGW 安装复制到 QT-MinGW 来解决这个问题。
其次,我找不到 CMake 所需的任何 *exe 文件,因此我无法更改本机 MinGW-Installation 的路径。
在调试模式下重建 Taglib 后我得到这个错误:
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib8FileNameC1EPKc'
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib7FileRefC1ENS_8FileNameEbNS_15AudioProperties9ReadStyleE'
main.cpp:11: error: undefined reference to `_imp___ZNK6TagLib7FileRef3tagEv'
main.cpp:11: error: undefined reference to `_imp___ZNK6TagLib6String9toCStringEb'
main.cpp:11: error: undefined reference to `_imp___ZN6TagLib6StringD1Ev'
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'
main.cpp:11: error: undefined reference to `_imp___ZN6TagLib6StringD1Ev'
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'
collect2.exe:-1: error: error: ld returned 1 exit status
使用 Qt 的新版本(5.8 而不是 5.7)解决了这个问题。
我正在尝试将 Taglib
与 Qt5.7
一起使用。但是我的程序崩溃了:
The GDB process terminated unexpectedly (exit code 0).
Cannot continue debugged process: The program is not being run.
During startup program exited with code 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 创建它们。我的 OS 是 Windows 10 x64 Education,我使用 Qt-Creator。我下载了最新的 Taglib-Release (1.11.1)
为什么我不能使用 CMake 创建构建文件: 首先缺少一些 *dll 文件,我可以通过将这些文件从本机 MinGW 安装复制到 QT-MinGW 来解决这个问题。 其次,我找不到 CMake 所需的任何 *exe 文件,因此我无法更改本机 MinGW-Installation 的路径。
在调试模式下重建 Taglib 后我得到这个错误:
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib8FileNameC1EPKc'
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib7FileRefC1ENS_8FileNameEbNS_15AudioProperties9ReadStyleE'
main.cpp:11: error: undefined reference to `_imp___ZNK6TagLib7FileRef3tagEv'
main.cpp:11: error: undefined reference to `_imp___ZNK6TagLib6String9toCStringEb'
main.cpp:11: error: undefined reference to `_imp___ZN6TagLib6StringD1Ev'
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'
main.cpp:11: error: undefined reference to `_imp___ZN6TagLib6StringD1Ev'
main.cpp:10: error: undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'
collect2.exe:-1: error: error: ld returned 1 exit status
使用 Qt 的新版本(5.8 而不是 5.7)解决了这个问题。