5月14日24:00睡 如何在VS2008中添加附加库目录输入

    在使用VS2008编译程序的时候,遇到了许多的变量重定义的问题,是头文件被多重包含了的缘故。解决方式如下:
    因为我建立TDWZDev工程是按照DriverDemo建立的,因此是预处理常量没有按照DriverDemo定义的值重新复制的原因。
    在C++中,#include 设施是C++预处理器的一部分。预处理器处理程序的源代码,在编译器之前运行。预处理器用指定的头文件的内容替代每个#include。为了避免多重包含常见的方式是定义预处理器变量。
    预处理器变量有已定义和未定义两种状态。可以使用这种设施来预防多次包含头一个文件。
     #ifndef SALESITEM_H
     #define SALESITEM_H
     // Definition of Sales_item class and related functions goes here
    #endif.


     通过这种形式避免多重包含。

DriverDemo的预处理器常量集合如下图:右击属性-->C/C++-->预处理器。然后把预处理器定义中的值拷贝到TDWZDev的对应位置。

    

    头文件包含步骤:
     在程序编写的过程中,需要包含头文件名,我们知道#include设施在导入自定义的头文件时,要用#include"头文件名"。“”表明我们引用的是程序目录的相对路径中的头文件,当前路径是VC工程中工程文件所在的路径,
其实这里的相对路径就是相当于工程文件(XXXX.vcproj)为起点零计算出的能找到包含所需头文件(也就是找包含所需头文件的include目录)的路径。

可以找到TDWZ工程的的起点路径为D:\插件协议\DriverDemo\vs2008\TDWZDev。因为TDWZDev.vcproj在这个目录下。然后我们导入本地的头文件时,因为处于编译阶段,所以要在下面的位置添加附加库目录。


可以看到上图红线方框出即为添加的附加包含目录,这样我们在程序代码中导入了#include"writer.h",vs2008会以此遍历附加包含目录,直到找到writer.h。在D:\插件协议\DriverDemo\include\json。退出两次进入include\json。因此添加的附加库目录为..\..\include\json
第二个问题:
1>正在链接...
1>LINK : fatal error LNK1181: 无法打开输入文件“hlog.lib”
该lib文件找不到处于链接状态,因此要修改的不是C/C++编译阶段,而是链接器的配置。对应如下的2.
一、只对当前工程起作用的设置
1. 设置头文件包含路径
   工程上右击,选择“属性”,打开工作属性页
   “配置属性”-->“常规”-->“附加包含目录”
2. 设置lib文件包含路径
   工程上右击,选择“属性”,打开工作属性页
   A“配置属性”-->“连接器”-->“常规”-->“附加库目录”,
      注意这只是添加了目录而已
   B“配置属性”-->“连接器”-->“输入”-->“附加依赖项”,
     这里指定了本工程要链接的库,等同于#pragma comment(lib, "xx.lib")
3. 设置DLL文件包含路径
   这个实际上要设置PATH变量,工程上右击,选择“属性”,打开工作属性页
   “配置属性”-->“调试”-->“环境”,右其中输入PATH=<DLL路径>
   这样运行时就可以找到DLL,不用将DLL拷贝到exe目录下
因此解决方式是先为TDWZ在连接器中常规添加hlog.lib所在的目录作为附加库目录。然后添加hlog.lib添加到链接器的输入-->附加依赖项。这样就能找到hlog.lib了。
二、对所有工程起作用的配置
1. 设置头文件包含路径
   菜单“工具”-->“选项”
   “项目和解决方案”-->“VC++目录”中“包含文件”中指定.h目录
2. 设置lib文件包含路径
   菜单“工具”-->“选项”
   “项目和解决方案”-->“VC++目录”中“库文件”中指定.lib目录


    晚上从海康威视回到宿舍的时候已经十点了,然后冲洗了一下,开始阅读《C++ Premier》里的标准IO库章节,环境非常好,内心也很宁静,所以一口气就看完了,看完已经24:00了,一共看了1小时35分钟的C++ Premier

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值