【VS】VS工程设置(包含目录、库目录、附加包含目录、附加库目录、附加依赖项)等

目录

工程结构

工程设置

设置exe输出目录、debug目录、生成的exe名称

配置include文件夹路径

配置库文件依赖(我这里是依赖静态库lib)

配置库文件所在目录

配置依赖的库文件

包含目录、库目录、附加包含目录、附加库目录、附加依赖项


作者:bandaoyu,本文不断更新,源文:https://blog.csdn.net/bandaoyu/article/details/105102945

工程结构

工程设置

(注意:如何发现设置正确,却一直报找不到错误,就需要注意Debug/release *x86/x64 组合的工程是独立设置的,设置的时候一定要看清楚你的工程是什么组合)

设置exe输出目录、debug目录、生成的exe名称

右击工程-->属性

请用$(SolutionDir) 这个宏,这样便于项目目录迁移,关于各种宏的说明见本文相关章节

配置include文件夹路径

配置库文件依赖(我这里是依赖静态库lib)

配置库文件所在目录

配置依赖的库文件

包含目录、库目录、附加包含目录、附加库目录、附加依赖项

VS项目中的包含目录、库目录、附加包含目录、附加库目录、附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明如下:

VC++目录:

    包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录

    库目录:寻找.lib文件的搜索目录

C/C++:

    常规->附加包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录(每一项对应一个文件夹XXXX,文件夹中包含了编译时所需的头文件,使用时直接#include<XXXX>即可)

链接器:

    常规->附加库目录:寻找.lib文件的搜索目录

    输入->附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)

常见问题:

1.包含目录附加包含目录(库目录和附加库目录)的区别:

    包含目录:修改了系统的include宏的值,是全局的;

    附加包含目录:用于当前项目,对其他项目没有影响。

    (库目录附加库目录的区别同上)

2.可知包含目录和附加包含目录(库目录和附加库目录)的区别主要在于全局还是当前,那么当需要对某工程添加这些目录时,通常情况下,都是在附加包含目录和附加库目录中添加的。

3. 要使用一个库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。

4.添加方法:

    附加包含目录---添加工程的头文件目录:

      项目->属性->配置属性->C/C++->常规->附加包含目录:加上头文件的存放目录;

    附加库目录---添加文件引用的lib静态库路径:

      项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;

    附加依赖项---添加工程引用的lib文件名:

      项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。

5.当需要向项目中添加.dll动态链接库时,直接将需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下即可(项目->属性->配置属性->常规->输出目录,可以看到.exe生成在哪个目录下)。

6.在添加上述几个目录的路径的时候,可以看到$(xxxx),这就是宏了,可以点开右下角的宏查看这些分别代表什么字符串。

原文链接:https://blog.csdn.net/u012043391/article/details/54972127

vs自带的宏说明

说明

在 Visual Studio 中,宏(Macros)是一组预定义的变量,用于在项目文件、构建配置和其他设置中引用各种路径和文件位置。这些宏可以帮助你在不同的环境中保持路径的一致性。

以下是一些常用的 Visual Studio 宏及其含义:

1. $(SolutionDir)

  • 含义:解决方案目录的绝对路径(包含解决方案文件的目录),xxx.sln文件所在路径。
  • 示例C:\Projects\MySolution\

2. $(ProjectDir)

  • 含义:当前项目的目录的绝对路径。
  • 示例C:\Projects\MySolution\MyProject\

3. $(TargetDir)

  • 含义:输出文件的目标目录的绝对路径。
  • 示例C:\Projects\MySolution\MyProject\Debug\

4. $(TargetFileName)

  • 含义:输出文件的目标文件名(包含扩展名)。
  • 示例MyProject.exe

5. $(TargetName)

  • 含义:输出文件的目标名称(不包含扩展名)。
  • 示例MyProject

6. $(TargetExt)

  • 含义:输出文件的目标扩展名。
  • 示例.exe

7. $(OutDir)

  • 含义:输出目录的绝对路径。
  • 示例C:\Projects\MySolution\MyProject\Debug\

8. $(Configuration)

  • 含义:当前的构建配置(如 Debug 或 Release)。
  • 示例Debug

9. $(Platform)

  • 含义:当前的构建平台(如 x86 或 x64)。
  • 示例x64

10. $(ProjectName)

  • 含义:当前项目的名称。
  • 示例MyProject

11. $(SolutionName)

  • 含义:当前解决方案的名称。
  • 示例MySolution

12. $(SolutionFileName)

  • 含义:当前解决方案的文件名(包含扩展名)。
  • 示例MySolution.sln

13. $(SolutionExt)

  • 含义:当前解决方案的扩展名。
  • 示例.sln

14. $(SolutionPath)

  • 含义:当前解决方案的绝对路径。
  • 示例C:\Projects\MySolution\MySolution.sln

15. $(ProjectFileName)

  • 含义:当前项目的文件名(包含扩展名)。
  • 示例MyProject.vcxproj

16. $(ProjectExt)

  • 含义:当前项目的扩展名。
  • 示例.vcxproj

17. $(ProjectPath)

  • 含义:当前项目的绝对路径。
  • 示例C:\Projects\MySolution\MyProject\MyProject.vcxproj

18. $(IntDir)

  • 含义:中间目录的绝对路径,用于存放编译过程中的中间文件。
  • 示例C:\Projects\MySolution\MyProject\Debug\

19. $(DevEnvDir)

  • 含义:Visual Studio 安装目录的绝对路径。
  • 示例C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\

20. $(VSInstallDir)

  • 含义:Visual Studio 的安装目录。
  • 示例C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\

21. $(VCInstallDir)

  • 含义:Visual C++ 的安装目录。
  • 示例C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\

22. $(WindowsSDKDir)

  • 含义:Windows SDK 的安装目录。
  • 示例C:\Program Files (x86)\Windows Kits\10\

23. $(FxCopDir)

  • 含义:FxCop(代码分析工具)的安装目录。
  • 示例C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Static Analysis Tools\FxCop\

24. $(ProgramFiles)

  • 含义Program Files 目录的绝对路径。
  • 示例C:\Program Files\

25. $(ProgramFiles(x86))

  • 含义Program Files (x86) 目录的绝对路径。
  • 示例C:\Program Files (x86)\

26. $(AppData)

  • 含义:当前用户的 AppData 目录的绝对路径。
  • 示例C:\Users\Administrator\AppData\Roaming\

27. $(LocalAppData)

  • 含义:当前用户的 Local AppData 目录的绝对路径。
  • 示例C:\Users\Administrator\AppData\Local\

28. $(Temp)

  • 含义:临时目录的绝对路径。
  • 示例C:\Users\Administrator\AppData\Local\Temp\

29. $(SystemRoot)

  • 含义:系统根目录(通常是 C:\Windows)。
  • 示例C:\Windows\

30. $(MSBuildProjectName)

  • 含义:当前项目的名称。
  • 示例MyProject

31. $(MSBuildProjectFullPath)

  • 含义:当前项目的绝对路径。
  • 示例C:\Projects\MySolution\MyProject\MyProject.vcxproj

32. $(MSBuildProjectExtension)

  • 含义:当前项目的文件扩展名。
  • 示例.vcxproj

33. $(MSBuildProjectDirectory)

  • 含义:当前项目的目录的绝对路径。
  • 示例C:\Projects\MySolution\MyProject\

34. $(MSBuildProjectFile)

  • 含义:当前项目的文件名(包含扩展名)。
  • 示例MyProject.vcxproj

35. $(MSBuildStartupDirectory)

  • 含义:MSBuild 启动目录的绝对路径。
  • 示例C:\Projects\MySolution\

这些宏可以在 Visual Studio 的属性页、构建配置、预处理器定义等地方使用,以确保路径和设置在不同的环境中保持一致。

例子

以下目录结构,应该怎么表示data的路径

Image/
├── myAlg/
│   └── myAlg.sln
└── data/
    └── your_data_files

答:$(SolutionDir)..\data

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值