常规
- 输出目录
$(SolutionDir)$(Configuration)\
调试时在解决方案文件夹下,生成Debug文件夹,生成.exe (Configuration的值是Debug)
- 中间目录
$(Configuration)\
调试时在项目文件夹下,生成Debug文件夹,生成.obj二进制文件.
- 举个栗子!
将输出目录设置为$(SolutionDir)$(Configuration)\Bin
将中间目录设置为$(SolutionDir)$(Configuration)\$(ProjectName)
就会在解决方案的Debug文件夹里看到一个Bin文件夹放exe,以及一个项目文件夹放中间文件
调试
- 工作目录
工作目录是一个环境变量,可在程序运行后随时进行设置更改
工作目录主要影响程序中使用到的相对路径,比如说"file.open(…/a.txt);"这个a.txt文件的具体位置是根据工作目录来判断的
VC++目录
- 包含目录(修改系统的include宏的值,是全局的!!)
寻找#include<xxxx.h>中的xxxx.h的搜索目录
- 库目录(系统,全局)
寻找.lib文件的搜索目录
C/C++
- 附加包含目录(作用于当前项目)
寻找#include<xxxx.h>中的xxxx.h的搜索目录
如果项目里用到了其他的库,比如一些自己下载的库
链接器
- 附加库目录(作用于当前项目)
寻找.lib文件的搜索目录
- 输入 - 附加依赖项
lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,.cpp,.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)
要使用一个库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。
TIPS :
- 要使用一个库,要在附加包含目录加上头文件位置,在附加库目录加上lib文件位置,在附加依赖项添加引用的lib文件名
- 当需要向项目中添加.dll动态链接库时,直接将需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下即可(项目->属性->配置属性->常规->输出目录,可以看到.exe生成在哪个目录下)
参考 :
[1] ghevinn, 运行目录和工作目录
[2] purple_wind_yy , 包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解