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
- 为了让
apptest.cpp
能够引用到test.h
,可以把solution
目录添加到apptest project的include path
里,具体方法:打开apptest的项目属性设置页面,Configuration Properties -> VC++ Directories,设置Include Directories为$(SolutionDir);$(IncludePath)
- 在
apptest.cpp
使#include <test/test.h>
来引入test.h
。
2. 设置Project的依赖和库路径,保证链接成功
- 设置依赖库的路径:
打开apptest的项目属性设置页面,Configuration Properties -> VC++ Directories,设置Library Directories为$(SolutionDir)debug;$(LibraryPath)
。上面加入$(SolutionDir)debug
的原因是,test project编译出的静态库会放到solution/debug
目录下。 - 经过设置链接仍然出错,还需要设置project的依赖,方法是在apptest project的右键菜单上选择 Add -> Reference...,在弹出的对话框里选中test。
经过上面的设置,就可以让apptest编译通过了。