`
cloudtech
  • 浏览: 4620091 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

统一管理磁盘上的开源代码

 
阅读更多

作者:朱金灿

来源:http://blog.csdn.net/clever101

以前写个程序,常常会用到开源代码作为第三方库。但常常时每写个程序就编译一次第三方库,这个非常浪费时间。昨天想了个办法,专门设一个文件夹OpenSource来存放第三方库。里面这样存放,比如在MinGW44环境下编译的boost库,就新建一个boost_1_42_0_MinGW44文件夹;用vc2005编译的png库,就新建一个png_vc8文件夹,具体如下图:

然后在每个库文件夹里建三个文件夹:

include —— 专门存放源码文件

lib —— 存放静态库和导入库

dll —— 存放动态库

这里你可能奇怪include文件夹为何存放源码文件。我是出于调试程序的需要。因为有些时候要获取精确的出错信息,往往要在第三方的源码里调试。

编译的第三方库的采用这样的命名:

静态库命名:lib+工程名_编译器信息_版本信息_互操作性细节信息.lib,

这 里的互操作性细节信息初步分为debug版本、release版本以及多字节版本和unicode版本。

一个简单例子就是libpng_vc80_1_3_d.lib,表示这个是由VS 2005编译出来的png静态库,是debug版本(.lib前面用一个d来区分),库版本为V 1.3,采用多字节字符集编译。(对应的release版本命名为libpng_vc80_1_3.lib)。如果是unicode版本,名称则是libpng_vc80_1_3_ud.lib和libpng_vc80_1_3_u.lib (多了一个字母u)。

导 入库:工程名_编译器信息_版本信息_互操作性细节信息.lib,这里的互操作性细节信息初步分为debug版本还是release版本,一 个简单例子就是png_vc80_1_3_d.lib,表示这个是由VS 2005编译出来的png导入库,库版本为V 1.3。(对应的release版本命名为png_vc80_1_3.lib)。如果是unicode版本,名称则是png_vc80_1_3_ud.lib和png_vc80_1_3_u.lib (多了一个字母u)。动态库命名与导入库一样,不过是后缀名改为dll。


引用第三方库采用环境变量的做法,这种做法的好处具体见:为何用环境变量而不用相对路径来包含第三方库。具体是:

1. 右键单击“我的电脑”,出现“系统属性”对话框,选择“高级”选项卡,,然后单击“环境变量”,如下图:

2. 单击“用户变量”下的“新建”按钮(你也可以新建系统环境变量,系统环境变量和用户环境变量的区别在于系统环境变量对所有用户有效,而用户环境变量只对当前用户有效),如下图:

3. 在弹出的对话框中输入环境变量名及磁盘路径,如下图:

4. 在VS 环境下使用,假如要包含tinyxml库的头文件,则在工程属性页上单击“C/C++”——“常规”选项卡,然后单击“附加包含目录”,如下图:

5. 在弹出的对话框中输入:$(THIRD_PARTY)\tinyxml_vc8\include,如下图:

附加包含库设置与之类似,在此不进行赘述。

另外需要指出的是在设置完环境变量之后打开的VS环境才能识别之前设置的环境变量,在设置之前打开的VS环境需要关闭重启才能识别。









分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    JAVA上百实例源码以及开源项目

     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...

    java开源包10

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包8

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包6

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包9

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包1

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包2

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包3

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包5

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包7

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包11

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包4

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包101

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    腾讯开源的分布式毫秒服务引擎 msec.zip

    毫秒服务引擎(Mass Service Engine in Cluster)是一个开源框架,适用于在廉价机器组成的集群上开发和运营分布式后台服务。毫秒服务引擎集RPC、名字发现服务、负载均衡、业务监控、灰度发布、容量管理、日志管理...

    java源码包---java 源码 大量 实例

     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...

    HOLD v1.0 试用版

    HOLD能够对多台VPS主机和服务器的CPU、磁盘、内存、流量、进程等进行实时监控和统一管理;同时在系统出现宕机或其它问题时能够第一时间给予管理者告警,使问题故障得到及时处理。软件功能:(1)系统基本信息显示:...

    java源码包2

     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...

Global site tag (gtag.js) - Google Analytics