【问题标题】:Is there any other location than VC++ Directories to specify lib and include folders?除了 VC++ 目录之外,还有其他位置可以指定 lib 和包含文件夹吗?
【发布时间】:2016-12-15 04:10:25
【问题描述】:

我的同事分享了一个可以在他的机器上正确编译的项目。但我必须使用工具/选项/项目和解决方案/VC++ 目录/包含(或 Lib)文件手动设置项目的“子文件夹”和“库”的包含文件夹。

我想知道为什么我的同事在收到编译错误时没有收到包含或 lib 文件编译错误?为什么我必须如上所述更正它?除了 VC++ 目录之外,还有其他位置/文件来指定我的同事正在使用的 lib 和包含文件夹吗?

【问题讨论】:

  • 确切的错误信息会有所帮助。
  • 错误很简单,在 $(ProjectDir)/xxx.h 中找不到 xxx.h 或 xxx.lib。当我在包含目录中添加 $(ProjectDir) 时,它会编译。

标签: c++ visual-studio visual-studio-2010 visual-c++ mfc


【解决方案1】:

如果我理解正确,您的同事会在项目中的项目子文件夹中包含类似“file.h”的文件,例如:

#include "file.h"

并在项目设置中设置子文件夹。如果您不使用项目设置,则必须像您一样设置自己的设置。

如果你写:

#include "subfolder/file.h"

它也应该在你的系统上工作而不设置项目设置(只有可能设置 $(ProjectDir))

如果您使用未保存在项目目录中的外部库,您可以设置 SystemVariabel (google for windows) 并在项目中使用它以使其更易于共享。

例如

您想从文件夹 C:/somelib 加载一个库,以便您可以使用此目录设置系统变量“SomeLibPath”并使用 $(SomeLibPath) 设置您的项目设置。因此,over worker 只需设置此系统变量即可正确包含。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    您可以在以下位置设置将由#include 搜索的目录: 项目属性 -> 配置属性 -> VC++ 目录 -> 包含目录

    您可以在以下位置设置将通过#include "" 搜索的目录: 项目属性 -> 配置属性 -> C/C++ -> 常规 -> 附加包含目录

    前者用于系统标头,后者用于您自己的或附加的第三方标头。

    请注意,这些设置是特定于配置(调试/发布等)和平台(Win32/x86/arm 等)的。

    【讨论】:

    • 这大部分是误导/错误的。 引用形式和尖括号形式搜索使用/I(“附加包含目录”)以及@987654323指定的目录@(“包括目录”)。尖括号 from 应该用于所有外部标题(包括第 3 方标题)。详情#include Directive。
    猜你喜欢
    • 1970-01-01
    • 2020-06-18
    • 2018-03-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多