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当前目录即可处理

  

VS2010中如何将动态链接库改成静态链接库的更多相关文章

  1. 动态链接库dll,静态链接库lib, 导入库lib

    转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html 目前以lib后缀的库有两种,一种为静态链接库(Static Libar ...

  2. linux下动态链接库.so文件 静态链接库.a文件创建及使用

    转摘网址为:http://www.cnblogs.com/fengyv/archive/2012/08/10/2631313.html Linux下文件的类型是不依赖于其后缀名的,但一般来讲:    ...

  3. vc下的静态链接库与动态链接库(一)

    一.静态库与动态库的区别 目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Lib ...

  4. [拾零]C/C++_代码复用的实现_静态链接库_动态链接库_使用.def导出

    1 静态链接库 1.1 创建静态链接库: 1.在VC6中创建项目:Win32 Static Library 2.在项目中创建两个文件:xxx.h 和 xxx.cpp 3.编译 1.2 使用静态链接库 ...

  5. MFC 封装类为静态链接库

    mfc自带的基本控件都不怎么美观,所以一般开发者都会自定义类对控件进行重绘.手里也积累了不少控件的重绘,对对话框.静态文本.列表框等. 但是每次都要把这些类重新导入到新的工程里,比较麻烦,而且我也不想 ...

  6. Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明

    本文描述的是windows系统下,通过qtcreator在pro文件中添加动态库与静态库的方法: 1.添加动态库(直接添加动态库文件.dll,非子项目) 通过qtcreator创建动态库的方法就不在此 ...

  7. OpenGL ES SL 3.0规范中以前的attribute改成了in varying改成了out

           OpenGL ES和OpenGL的图标 关于“OpenGL ES SL 3.0规范中以前的attribute改成了in varying改成了out”这个问题,做一阐述: 1.关键字的小修 ...

  8. 介绍静态链接库和动态链接库的差别,及在VC++6.0中的建立和使用

    首先介绍一下链接库:链接库分为动态链接库和静态链接库两种 LIB是静态链接库,在程序编译连接的时候是静态链接,其相应的文件格式是.lib. 即当程序採用静态链接库的时候..lib文件里的函数被链接到终 ...

  9. 在项目中随手把haseMap改成了currenHaseMap差点被公司给开除了。

    前言 在项目中随手把haseMap改成了currenHaseMap差点被公司给开除了. 判断相等 字符串判断相等 String str1 = null; String str2 = "jav ...

随机推荐

  1. 玩转Panabit 2008 Live CD到U盘,Panabit随身行

    直接将Panabit 2008 Live CD的内容复制到U盘,即把Live CD转成U盘启动盘,U盘可写,方便保存配置.要能正常使用,必须机器支持USB启动,才能用上:但是熟悉此方法,同样可以灵活用 ...

  2. ivy antlib shemalocation

    <?xml version="1.0" encoding="UTF-8"?> <project name="yourproject& ...

  3. Navicat Premium解决连接mssql报错的问题

    连接名:mssql_172.16.30.21:1433,每次打开查询时就报错. 重启,重转都不好使. 解决办法:去掉“:1433”,因为文件目录不支持“:”,所以一直报错.问题终于得到解决.

  4. Java 利用缓冲字节流来实现视频、音频、图片的复制粘贴

    InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位). OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的, ...

  5. HDU 1686 Oulipo(优化的KMP)

    Oulipo Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. Check failed: mdb_status == 0 (2 vs. 0) No such file or directory

    运行  ./examples/mnist/train_lenet.sh  时,碰到了这个问题. 一定是路径问题!!!仔细查看prototxt文件里面的各种路径!!! 解决方案: 把.prototxt里 ...

  7. Python实践练习:正则表达式查找

    题目 编写一个程序,打开文件夹中所有的.txt 文件,查找匹配用户提供的正则表达式的所有行.结果应该打印到屏幕上. 代码 #!/usr/bin/python # -*- coding: UTF-8 - ...

  8. windows删除服务的命令行语句

    想要删除windows xp里的一个服务,怎么办呢? 系统没有可视化的工具可以用,不过内置了一个cmd命令 sc.exe 具体操作方法是:开始--运行--cmd,进入cmd命令行. 然后输入: sc ...

  9. 关于directshow的SmartTee

    可以通过CLSID_SmartTee创建: CComPtr<IBaseFilter> pSmartTee; // Create the Smart Tee (CLSID_SmartTee) ...

  10. 14 并发编程-(协程)-greenlet模块&gevent模块

    1.实现多个任务之间进行切换,yield.greenlet都没有实现检测I/O,greenlet在实现多任务切换下更简单 from greenlet import greenlet def eat(n ...