【发布时间】:2014-06-30 17:08:49
【问题描述】:
我需要使用 Qt 5 构建一些 DLL,但我一定做错了,因为程序需要它 isnt working。我知道有问题,因为当我在任何已构建的 dll 上运行依赖项walker 时,它说存在错误的链接或找不到某些 DLL:
我相信这是因为有些东西是 x64 位,而另一些是 x32 位。我正在一个 64 位平台上工作,但我正在尝试使用 32 位 DLL 构建一个 32 位应用程序。我使用 32 位 mingw 编译器、32 位 Qt 版本、32 位除操作系统之外的所有内容。老实说,我对此很陌生,而且我有些迷茫,有人能指出我正确的方向吗?我的编译出了什么问题?
这是所示 DLL 的 .pro 文件:
TEMPLATE = lib
TARGET = QENC
DESTDIR = ../release
QT += core gui widgets
CONFIG += release
DEFINES += QENC_LIB QT_DLL
INCLUDEPATH += ./GeneratedFiles \
./GeneratedFiles/Release \
. \
../../../proj-4.8.0/src
DEPENDPATH += .
MOC_DIR += ./GeneratedFiles/release
DLLDESTDIR += release
OBJECTS_DIR += release
UI_DIR += ./GeneratedFiles
RCC_DIR += ./GeneratedFiles
include(QENC.pri)
PS:我什至在 QtCored.dll 和 Qt 安装的其他 DLL 中遇到错误:S 这可能什么都没有,也可能是错误的根源。
【问题讨论】:
-
你能发布你的专业文件吗?问题可能就在那里。
-
@Amarghosh 完成!虽然我不知道这是否是问题所在,因为一些 DLL 是从 Internet 下载的源代码,它们确实为其他人工作。
-
对于丢失的 dll 文件,请确保它们的路径在 LIBS 变量中指定为
LIBS += -Wl,--rpath,/path/to/downloaded-dlls(或其 Windows 等效项)。或者您可以使用相当于LD_LIBRARY_PATH的windows。如果在下载的 dll 上看到了 different-cpu-type 错误,您可能需要为您的平台下载正确的文件(其他文件可能在不同版本的操作系统或 CPU 上)。
标签: c++ qt dll 32bit-64bit dependency-walker