• 9440阅读
  • 3回复

关于WINDOW下QT4在使用release时候报告QtCore4.dll链接问题 [复制链接]

上一主题 下一主题
离线jay8830095
 
只看楼主 倒序阅读 楼主  发表于: 2010-08-05
— 本帖被 XChinux 执行加亮操作(2011-01-24) —
WINDOW下本人在DEBUG的情况下编译了一个程序,打开程序一切正常,打算进行RELEASE编译,编译结束后打开release文件夹下的程序报出“QT无法定位程序输入点*于动态链接库 QtCore4.dll ”

多方查找原因发现网上有几种说法罗列下和大家分享:
1)PATH变量没有添加完全。
所以要在环境变量中添加俩个路径。一般会包含路径一个是      C:\Qt\2010.02.1\bin
另一个是                               C:\Qt\2010.02.1\qt\bin。
把这俩个路径添加到PATH环境变量中去。如何添加后面再说。
2)PATH中有包含了以前的QtCore4.dll或者其他程序中也有QtCore4.dll
如果你以前使用的程序有这个QtCore4.dll,恰好也在环境变量中包含了这个。这样虽然在编译时release时不会报错,但在执行*.exe文件时会报错。
因为你编译时找的库就是你QT中的库,但执行是却不是这个库。
3)WINDOW中的PATH中路径顺序不对。
   PATH的路径我个人认为会先找寻处在前面的路径,如果找到了库后面的路径就不会再找。比方说你以前的程序安装早,它的PATH环境变量比你安装的QT要靠前,所以在以前的安装环境变量中找到QtCore4.dll后不会再寻找你的QT中的环境变量里的QtCore4.dll。
所以为保险起见你在PATH的开头把这俩个路径编写进去,俩个的先后顺序不能颠倒。
一个是 C:\Qt\2010.02.1\qt\bin 这个路径中的QtCore4.dll就是release需要的库。
另一个路径是C:\Qt\2010.02.1\bin 貌似启动QT时需要这个否则启动不起来,这个路径里也有这个库。
这俩个路径添加完后重新编译release生成的。exe就可以执行了。
如何设置环境变量还是参考别人设置的吧,网上可以搜好多的。
(右击我的电脑>属性,在 “高级” 选项卡中,点 环境变量 看到“PATH”被选中,点击“编辑”就可以编辑了)





在不断的变化
离线dbzhang800

只看该作者 1楼 发表于: 2010-08-05
能整理自己遇到的问题,值得表扬。 ^_^

针对你的总结,我补充一点:

1.  C:\Qt\2010.02.1\bin 是 QtCreator 的目录,不需要将它加入PATH(最好不要加)

2.  编译链接时 不需要QtCore4.d 这种动态库,根本不会去找你的系统中有没有这个库,只有运行时才需要。

3. 因为你下载的Qt SDK,其中的Qt 本身是Mingw编译的,而sdk中的Qtcreator是MSVC版Qt编译的,不同C++编译器生成的dll是不兼容的,所以两处dll不可混用。
离线bellarosa
只看该作者 2楼 发表于: 2011-01-24
非常感谢!此贴解决了我的问题。
离线alexanderwbx
只看该作者 3楼 发表于: 2011-03-08
C:\Qt\2010.02.1\bin 不是 QtCreator 的目录吧?C:\Qt\qtcreator-2.0.1\才是哦
快速回复
限100 字节
 
上一个 下一个