vc++6.0中Tools>Options>Directories>Library files设置,与Project Setting>Link 有什么联系?
查看网上资料,vc++6.0中Tools>Options>Directories>要包含BIN,INCLUDE,LIB,SRC等相关文件路径,但是ProjectSetti...
查看网上资料,vc++6.0中Tools>Options>Directories>要包含BIN,INCLUDE,LIB,SRC等相关文件路径,但是Project Setting>Link中,也有.lib文件设置;我的问题是:在Tools>Options>Directories>LIB中既然已经设置了库文件路径,为什么在Project Setting>Link中还要添加相应的库文件,二者之间是什么关系?因为我试验过,即使Tools>Options>Directories>LIB中包含有某lib文件,但是如果Project Setting>Link中未添加该某lib文件,如果该工程需要该某lib文件链接,最终编译是不通过的?查看资料称是附加链接库http://hi.baidu.com/yu_xiyan/item/e2ca7e37adddd2f52784f487,但是还是不清楚附加在哪里,因为Tools>Options>Directories>LIB中已包含了该库文件,谢谢。
展开
2个回答
展开全部
设置vc++6.0中Tools>Options>Directories>是表示你的包含BIN,INCLUDE,LIB,SRC等相关文件路径,而Project Setting>Link中是你具体要用到的静态链接库,例如A.lib 前面是表A.lib文件所在路径,后面是表示系统要用到A.lib
你可以不设置前面,把A.lib直接拷贝到你VC工程的路径,但是你必须配置Project Setting>Link中加入A.lib,当然如果这个A.lib是系统的,而且你又是mfc工程,也可以不写
你可以不设置前面,把A.lib直接拷贝到你VC工程的路径,但是你必须配置Project Setting>Link中加入A.lib,当然如果这个A.lib是系统的,而且你又是mfc工程,也可以不写
追问
当然如果这个A.lib是系统的,而且你又是mfc工程,也可以不写------------>这句能否在详细解释下。
你的回答中的其余部分我都理解,于我自己思考的基本对上啦,其实.LIB可以和.H类比。既然源文件中要包含头文件,所以链接的时候也需要包含库文件,但是对你最后一句不是很理解,谢谢。
追答
打个比方,你程序中要用到网络接口 socket(系统api,不是mfc的Csocket类),如果你建立的是支持网络的mfc工程(支持网络的mfc中是兼容支持soket api的),头文件在StdAfx.h中自动加了#include ,而soket api要用到的wsock32.lib可以不在Project Setting>Link中填写(mfc工程中,系统自动识别),而且程序要用到的DLL也是系统目录自动加载。你程序运行时,并不要携带这些DLL
如果你不是建立mfc工程,但要工程支持soket api,那你不光头文件要用#include
#include ,在Project Setting>Link中还要填写加入kernel32.lib user32.lib winspool.lib gdi32.lib uuid.lib wsock32.lib等,其中wsock32.lib是soket api的,(在你可以试着建立一个win32 Dynamic-link library)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询