dll加载的问题
由于dll是动态加载,加载失败的话,编译会通过,但程序会异常。比如qt中会出现程序窗口不出现的问题。
加载失败一般是两个方面引起的
1.路径错了,编译器找不到指定的dll
2.dll存在依赖
第二点比较隐蔽,我搞了一天才在qmake的环境下搞好,当一个dll中还依赖另外的dll时,就需要连接器自己去到相应的目录下去找,他很笨的,除了大家通用的目录之外不会找其他目录,所以当出现这种情况时,要指定搜索的目录。
在qmake的pro中 是通过INCLUDEPATH实现的,支持通配(./),这个选项就指定了,当依赖的dll找不到时还要到哪里去找,
INCLUDEPATH += .
这就是说在当前目录下找,
对于隐式加载而言,这是不够的,这从效果上只是指定了依赖项dll的加载目录,你在程序中直接使用的dll需要再加上一条
LIBS +=-L. -labc
这就是说 我要从-L选项后面的路径中加载abc,当abc依赖的qwe找不到时,就去搜索系统通用路径,依然找不到时就去搜索INCLUDEPATH
mfc的情况如下
http://blog.csdn.net/woyaowenzi/archive/2009/07/08/4332187.aspx