gpt4 book ai didi

c++ - 对使用 Unix 的 C++ 中的单独目录的 #include 感到困惑

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:18 26 4
gpt4 key购买 nike

对使用 Unix 的 C++ 中的单独目录的 #include 感到困惑

最佳答案

您的问题部分是answered here ,假设您正在使用 GCC (对 Visual Studio 进行相同的比较):

  • #include <file> This variant is used for system header files. It searches for a file named file in a standard list of system directories. You can prepend directories to this list with the -I option (see Invocation).
  • #include "file" This variant is used for header files of your own program. It searches for a file named file first in the directory containing the current file, then in the quote directories and then the same directories used for <file>. You can prepend directories to the list of quote directories with the -iquote option.

所以当你想包含 geometry.h 时使用#include <>您只需调用 gcc额外 -I争论,你只需要决定你想要走多“”:

gcc -I                               #include
/abs/path/ws/B/inc/Normal <geometry.h>
/abs/path/ws/B/inc <Normal/geometry.h>
/abs/path/ws/B <inc/Normal/geometry.h>
/abs/path/ws <B/inc/Normal/geometry.h>
/abs/path <ws/B/inc/Normal/geometry.h>

如果你想使用#include ""你也可以这样做:

假设您位于 /abs/path/ws/A/inc/your_header.h并希望包括/abs/path/ws/B/inc/Normal/geometry.h :

#include                          path
"geometry.h" /abs/path/ws/A/inc/geometry.h
"../geometry.h" /abs/path/ws/A/geometry.h
"../../geometry.h" /abs/path/ws/geometry.h
"../../B/geometry.h" /abs/path/ws/B/geometry.h
"../../B/inc/geometry.h" /abs/path/ws/B/inc/geometry.h
"../../B/inc/Normal/geometry.h" /abs/path/ws/B/inc/Normal/geometry.h

如果这不起作用,您可能位于不同的文件夹中,或者在某个地方有拼写错误。

我个人会选择第一个解决方案(您可能希望稍后拥有“系统范围”的库,这样您只需更改 makefile 中的一个 -I header ,而无需编辑源代码)。

关于c++ - 对使用 Unix 的 C++ 中的单独目录的 #include 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26936548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com