• 7639阅读
  • 6回复

[提问]关于发布程序时带的DLL [复制链接]

上一主题 下一主题
离线ninsun
 

只看楼主 倒序阅读 楼主  发表于: 2010-06-24
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-01-07) —
不想用静态编译, 于是就把所需DLL放置在程序目录里. 但是发觉文件一多感觉就有些乱了...
没有什么办法设置一下, 吧DLL放在一个统一的目录中呢. 例如 ./lib
尝试了半天, 只有通过bat设置环境变量才可以, 但是用bat会出现控制台窗口, 而且又多了一个文件... 总觉的不爽....
各位有什么办法吗... 多谢了.

PS: 现在发布的程序文件夹看起来是这个样

希望是这个样子的
[ 此帖被ninsun在2010-06-24 16:23重新编辑 ]
离线ninsun

只看该作者 1楼 发表于: 2010-06-25
没有人知道吗...
难不成要做个什么安装文件, 然后再安装的时候向系统添加环境变量吗...
想做成绿色程序啊...
离线cahwxy

只看该作者 2楼 发表于: 2010-06-25
可以 把所有的dll 放在一个指定目录
但是在程序中要设定搜素dll的目录 比如你的 lib
离线ninsun

只看该作者 3楼 发表于: 2010-06-25
引用第2楼cahwxy于2010-06-25 10:04发表的  :
可以 把所有的dll 放在一个指定目录
但是在程序中要设定搜素dll的目录 比如你的 lib

问题就在于如何设定...
启动程序需要的DLL(例如QtCore4.dll, QtGui4.dll,libgcc_s_dw2-1.dll)是需要在环境变量里设定的, 甚至和程序启动无关的QtSvg4.dll也是需要在程序运行前设定位置...
我尝试在程序的main函数开头设定环境变量也没有用, 也就是必须在运行程序之前设定才有用...
QApplication::addLibraryPath只对程序运行起来以后, 配置插件路径起作用...

所以很纠结... 难道只能不去在意文件太乱了吗...
离线dbzhang800

只看该作者 4楼 发表于: 2010-06-27
1. 首先,程序和dll放到一块真的很乱么?实际中大家一般很少去打开某个文件夹去启动某个程序吧(这样一来乱与不乱有什么关系呢)

2. 如果真的要实现你的功能,程序和动态库放子文件夹,子文件夹外放个快捷方式不就行了么?

3.如果不用快捷方式,既然bat文件都想到了,只是抱怨它的cmd窗口。何不自己写一个简单的不带控制台的程序,来启动你的主程序。


[ 此帖被dbzhang800在2010-06-27 11:47重新编辑 ]
离线ninsun

只看该作者 5楼 发表于: 2010-06-27
那我就考虑弄个启动器吧...
离线ninsun

只看该作者 6楼 发表于: 2010-06-27
于是, 启动器做好了...
http://www.qtcn.org/bbs/read.php?tid=30176
快速回复
限100 字节
 
上一个 下一个