VS2010中如何将动态链接库改成静态链接库
VS2010静态编译生成的.exe可执行文件,可以免安装免DLL在其他电脑直接运行。
静态编译:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库。
1. 编译实现方式有两种
【1】debug方式的静态链接:
设置:
(1)项目 -> 配置属性->常规->MFC的使用:在静态库中使用MFC(如果有使用MFC)。
(2)项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MTd)。
编译时,选择的是debug,win32
然后执行编译生成方案,在该工程目录下的debug文件中,找到该.exe文件,即可在其他电脑运行。
debug方式生成的.exe文件会比较大,因为它包含了一些调试用的信息。
【2】release方式,就是正式版发行版
一般可以配置以下两项:
(1)项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC(如果有使用MFC)。
(Project—Properties—Configuration Properties—General—Use of MFC—Use MFC in a Static Library)
(2)项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程(/MT)。
(Project—Properties—Configuration Properties—C/C++—Code Generation—Runtime Library—Multi-threaded(/MT))
编译时,选择的是release(这个选择项在工具栏的debug下拉列表中),win32。
然后执行编译生成方案,在该工程目录下的release文件中,找到该.exe文件,即可在其他电脑运行。
2. 可能出现的问题
(1)提示一些库缺失
解决:则需要把相应缺失的库添加到exe当前目录
例如:把相应的glut32.dll添加到exe当前目录即可处理