【问题标题】:Referencing a cpp/h file in different location引用不同位置的 cpp/h 文件
【发布时间】:2014-08-29 15:49:22
【问题描述】:

我有一个非常基本的问题。如果我的 .cpp 和 .h 文件位于与我的项目不同的位置,我如何通过说 #include " " 来引用它。

我正在尝试使用 wxMathPlot.cpp/.h 并且它引用 wxWidget cpp 文件。 mathplot.cpp(19):致命错误 C1083:无法打开包含文件:'wx/window.h':没有这样的文件或目录

假设我的 wxMathPlot.cpp 位于 C:\Users\Owner\Desktop 而我的 wx/window.h 位于 C:\Users\Owner\Documents

【问题讨论】:

  • This SO question 有一个很好的答案。
  • 这里的关键字是library。您需要了解 C++ 库以及如何在您的特定开发环境中使用它们。假设这只是引用源文件是错误的。您必须单独编译库的源代码(或使用预构建的二进制文件),通过修改编译器的包含路径来引用头文件,最后链接到二进制文件。对于初学者来说,这一切都不是微不足道的东西,关于 C++ 库的完整指南超出了单个 SO 答案的范围。
  • 总是喜欢配置,它不太可能留在桌面文件夹中。 Project + Properties、C/C++、General、Additional Include Directories 设置。链接器也有一个。

标签: c++


【解决方案1】:
#include "../Documents/wxMathPlot.h"

应该可以。详细说明:

当您使用诸如 #include "header.h" 之类的包含时,与搜索文件的目录相同。

当您使用 #include <header.h> 之类的包含时,将搜索特定目录,由您的编译器选择,您可以在该目录中找到大多数标准库头文件。

【讨论】:

    【解决方案2】:

    您可以通过使用其完整路径或通过路径中的一个或多个.. 来引用它(这意味着“上一级”),或者您可以指定头文件所在的目录在“头文件搜索路径”(“包含路径”)中,然后只使用文件名。

    但是,不建议使用完整路径,因为如果您将头文件相对于引用它的文件移动,那么它将不再起作用。

    请查看this SO question 以获得好的答案。

    【讨论】:

    • 不建议使用完整路径。
    • @Naseef 我同意。现在已修复。
    【解决方案3】:

    对于 CPP 文件,您需要在项目中添加这些文件。如果您使用的是 Visual Studio,您可以通过右键单击您的工作项目并选择添加现有项目来添加 cpp 文件。如果你想引用一个 .h 文件,你需要包含这个,例如

    #include "../Documents/wx/Windows.h"
    

    使用相对路径总比使用绝对路径好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-27
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多