应用程序与静态mylib.a链接,但exe正在寻找mylib.dll

时间:2015-08-05 19:28:46

标签: qt mingw qt5

我在linux中使用Qt 5.5创建了一个静态库mylib,并在我的qt应用程序中链接到它并且一切正常

mylib创建.pro文件的一部分

TARGET  = mylib
TEMPLATE = lib

CONFIG  += staticlib

现在,在win7中使用qt5.5运行相同的mingw32似乎编译并链接mylib没有错误,但崩溃了myapp,因为它正在寻找mylib.dll ... 为什么链接进程没有将静态mylib.a链接到它

myapp链接文件的一部分

linux {
INCLUDEPATH +=   ../build-mylib-Desktop-Debug
LIBS        += -L../build-mylib-Desktop-Debug -lmylib
}
win32 {
INCLUDEPATH +=   ../build-mylib-Desktop_Qt_5_5_0_MinGW_32bit-Debug/debug
LIBS        += -L../build-mylib-Desktop_Qt_5_5_0_MinGW_32bit-Debug/debug -lmylib
}

我不明白为什么相同的专业文件在Linux中工作,但在win7中使用mingw32,似乎没有发生与mylib.a链接的应用程序,甚至没有错误,并且mylib.a存在。

1 个答案:

答案 0 :(得分:0)

删除调试/发布构建目录,并作为安全措施同时删除xxx.pro.user文件以强制进行新项目设置使其正常工作

也许没有必要删除xxx.pro.user文件

我在使用mingw32-libusb-1.0二进制文件和hidapi源的usb-hid应用程序中运行mylib.a时遇到了第二个问题

mylib包含我自己的二进制类型pkg类型协议代码

我有hidapi代码的来源

我能够将hidapi源与mylib代码捆绑在一起并将其编译成mylib.a

应用程序现在必须与mylib.a和mingw32-usblib-1.0的二进制文件链接才能正常工作

尝试在mylib.a创建过程中将mingw32-usblib-1.0与hidapi源代码和mylib代码捆绑在一起,之后将应用程序与包含所有库的链接联系起来mylib.a在linux中工作,但在win7中失败

创建库:hidapi源+ mylib代码 - > mylib.a上 创建app:app code + mylib.a + mingw32-usblib-1.0 ...在linux和win7上工作

创建库:hidapi source + mylib code + mingw32-usblib-1.0 - > mylib.a上 创建app:app code + mylib.a ...在linux上工作,在win7上失败