vs 外部依赖项、附加依赖项以及如何添加依赖项目

我们在 VS 中创建 Win32 控制台应用程序,vs 会为解决方案创建默认地创建 4 个 filters(资源管理器中没有对应的目录和文件夹):

  • 头文件:一般为 .h 文件
  • 外部依赖项
  • 源文件:一般为 .cpp文件
  • 资源文件

1. 外部依赖项 & 资源文件

  • 外部依赖项:C++ 外部依赖项有很多,大部分都是静态库文件,编译的时候会递归关联起来生成可执行文件,所以可执行文件才会大很多

编译的时候: 外部依赖项都是一个填充地址 , 比如 你的代码里调用 外部依赖函数地址 Extern_funA 。

  • 预编译的时候展开头文件
  • 编译生成obj文件的时候,Extern_funA 就是一个填充地址 比如 0x00 00 00 00
  • 链接的时候基地址重定位生成对应的 Extern_funA 地址。
  • 链接的时候会根据你的工程配置想一个去查找 DLL 导出符号表,发现没有找到 Extern_funA 。那么就会出错,说无法定位外部符号。

右键【源文件】,选择【添加 ⇒ 新建项】,比如此时我们创建,test.cpp 文件,只需 include 一个文件:


#include <iostream>

 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

此时重新点开 【外部依赖项】filter,便会看到引入了相当多的库文件。

  • 资源文件:主要是你用到的一些程序代码以外的东西,比如图片之类,或者菜单、工具栏之类的。

  • 2. 库目录 & 附加依赖项

    库目录只是查找目录,类似环境变量 PATH;具体用哪一个需要指明的,如果不在附加依赖项里填上,就需要在代码里用

    #pragma comment(lib, “xxx.lib”)
     
     
    • 1
    • 1

    来手动指定了。你写代码读写一个文件需要写明文件名吧,这个文件名就相当于那个lib , 但读写这个文件可以不写全路径,就是因为有工作目录(working directory)的存在。

    3. 添加依赖项目

    VS2013 添加依赖项目

    • 1、新建解决方案,项目A

    • 2、为项目A添加一个依赖项目B,项目B做为静态lib被项目引用,

    项目B创建步骤如下:

    • 选择菜单”文件”->新建->项目,弹出“新建项目”对话框;

    • 左侧列表选择Visual C++,右侧列表选择win32控制台应用程序,

    对话框下面输入名称,选择位置,解决方案选择添加到解决方案,确定。

  • Win32应用程序向导,下一步,选择应用程序类型为静态库,

  • 添加公共头文件以用于选择MFC(根据实际情况选择,因为项目需求<nb30.h>编译需要选择MFC),完成。

  • 3、项目配置,项目A右键选择属性,选择通用属性,引用->添加新引用->选择项目B;

  • 引用项目B的头文件目录,步骤如下:配置属性->VC++目录->包含目录:添加项目B头文件路径..\B\Header。

    其中编译的时候会出项目A引用项目B的接口无法解析,可能是3步骤没有做。

                <link rel="stylesheet" href="http://csdnimg.cn/release/phoenix/production/markdown_views-d4dade9c33.css">
                    </div>
    
     
     
    • 1
    • 2
                <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
                    </div>
    
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值