[VC++]同一Solution下,多个project之间依赖方法


title: "同一Solution下,多个project之间依赖方法"
date: 2017-12-21
tags: ["visual c++"]


如果要开发一个静态库(例如test.lib),调试静态库的话可以写一个控制台应用(例如apptest.exe)。这时候需要建立两个Project。为了方便调试,可以把这两个Project放到同一个Solution下。这样静态库有任何变化,在应用里就可以马上感知到,快速的进行修改对应。

这样的需求该如何配置Project的属性呢。

1. 首先应用程序的代码要能够找到静态库的头文件。

我们看一下Solution的目录结构:

solution/
solution/apptest/
solution/apptest/apptest.cpp
solution/test/
solution/test/test.h
solution/test/test.cpp
solution/debug/
solution/solution1.sln
  1. 为了让apptest.cpp能够引用到test.h,可以把solution目录添加到apptest project的include path里,具体方法:打开apptest的项目属性设置页面,Configuration Properties -> VC++ Directories,设置Include Directories为$(SolutionDir);$(IncludePath)
  2. apptest.cpp使#include 来引入test.h

2. 设置Project的依赖和库路径,保证链接成功

  1. 设置依赖库的路径:
    打开apptest的项目属性设置页面,Configuration Properties -> VC++ Directories,设置Library Directories为$(SolutionDir)debug;$(LibraryPath)。上面加入$(SolutionDir)debug的原因是,test project编译出的静态库会放到solution/debug目录下。
  2. 经过设置链接仍然出错,还需要设置project的依赖,方法是在apptest project的右键菜单上选择 Add -> Reference...,在弹出的对话框里选中test。

经过上面的设置,就可以让apptest编译通过了。

参考文档

  1. Visual C++ 设置适合自己的解决方案目录结构
  2. Adding references in Visual C++ projects

你可能感兴趣的:([VC++]同一Solution下,多个project之间依赖方法)