今天看组里一个工程的代码,里面包含3个工程,一个编译成dll,一个编译成lib,一个编译成exe。
于是心血来潮研究了一下程序的编译机制,我的目的就是想让编译出来的程序双击能够运行。
然后找了个qt的小程序,拿来编译一下,双击,说缺少QtCore4.dll,我也懒得一个个放进去。
google之~
然后发现要用release编译,编译,双击,说找不到程序入口点,后面给了QtCore4.dll的文件名字。
继续google之~
发现说要在环境变量中添加路径:
注意!Qt安装的时候已经在环境变量中添加名为QTDIR的变量,但是双击程序运行的路径并没有添加进Path中,所以需要到Path中再添加一遍Qt bin目录的路径。
将其放在最后,确定,再双击,还是找不到程序入口点...丫,这是坑爹呢?!
再google之~
说很多时候需要调用动态链接库dll的时候,会出现dll污染的情况,比如你安装的某些程序路径中也包含了这个QtCore4的文件,而且人家的路径放在Path靠前的位置,你把Qt官方路径放在最后当然要吃亏的拉......
最后将Qt路径放在了Path最前面,大功告成。