【问题标题】:Error "File format not recognized" while I add an external library in Qt在 Qt 中添加外部库时出现“无法识别文件格式”错误
【发布时间】:2014-03-16 08:10:54
【问题描述】:

我正在创建一个使用外部库的小型 Qt 应用程序。 我有头文件和lib文件。我的专业档案是

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = IndexCreator
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h


win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../ExternalLibrary/ -lHASHLIB
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../ExternalLibrary/ -lHASHLIBd

INCLUDEPATH += $$PWD/../ExternalLibrary
DEPENDPATH += $$PWD/../ExternalLibrary

我得到这个错误:

12:01:11: Running steps for project IndexCreator...
12:01:11: Configuration unchanged, skipping qmake step.
12:01:11: Starting: "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" 
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\qmake.exe -spec win32-g++ -o Makefile ..\IndexCreator\IndexCreator.pro
C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'G:/Projects/PDT/IndexCreator/build-IndexCreator-Desktop_Qt_5_2_1_MinGW_32bit-Release'
g++ -Wl,-s -Wl,-subsystem,windows -mthreads -o release\IndexCreator.exe release/main.o release/mainwindow.o release/moc_mainwindow.o  -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmain -LG:/Projects/PDT/IndexCreator/IndexCreator/../ExternalLibrary/ -lHASHLIB -LC:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib -lQt5Widgets -lQt5Gui -lQt5Core 
G:/Projects/PDT/IndexCreator/IndexCreator/../ExternalLibrary//HASHLIB.lib: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
Makefile.Release:80: recipe for target 'release\IndexCreator.exe' failed
mingw32-make[1]: *** [release\IndexCreator.exe] Error 1
mingw32-make[1]: Leaving directory 'G:/Projects/PDT/IndexCreator/build-IndexCreator-Desktop_Qt_5_2_1_MinGW_32bit-Release'
makefile:34: recipe for target 'release' failed
mingw32-make: *** [release] Error 2
12:01:13: The process "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project IndexCreator (kit: Desktop Qt 5.2.1 MinGW 32bit)
When executing step 'Make'
12:01:13: Elapsed time: 00:02.

我需要使用这个库中的函数。

【问题讨论】:

  • 您确定 HASHLIB.lib 是使用 mingw 工具集而不是 Microsoft 工具集创建的吗?
  • @stijn:我认为它与微软有关...它能够在 Visual Studio 中使用该库。如果是我该怎么办?
  • @Abin:不,不推荐。你不能得到一个 mingw 变种吗?
  • @Abin:你不一定需要有来源。它从何而来?他们不提供 mingw 变体吗?如果没有,你最好放弃 mingw。

标签: c++ qt visual-c++ qt5 mingw32


【解决方案1】:

您似乎在混合 mingw(您的工具链设置)和 msvc(如何构建 hashlib)。如果可能的话,在 Windows 上应该不惜一切代价避免这种情况,即使是最新版本。

由于您似乎无法访问源代码,如果您无法让供应商提供 mingw 版本,您最好将 mingw 放到您的项目中,或者将 hashlib 作为依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2019-05-25
    • 2017-05-12
    • 2013-06-12
    • 2016-05-25
    • 2016-02-14
    • 1970-01-01
    相关资源
    最近更新 更多