【问题标题】:Adding Search Path For #include为#include 添加搜索路径
【发布时间】:2020-06-01 19:30:39
【问题描述】:

我试图了解:(Manipulating the search path for include files),但我遇到了麻烦。请注意,我是新人。

我尝试将以下内容放在带括号的#include 中:#include "boost/1.73.0/include/boost/math/tools/promotion.hpp" where "= 括号。

我尝试在 make 中将搜索路径添加到选项文件中。我用过:-I/boost/1.73.0/include/boost/math/tools 和#include "promotion.hpp"

创建原始 OpenFoam 求解器的人在选项文件中没有任何内容,并且有 #include "boost/math/tools/promotion.hpp" where "= 括号。

我没有编译一个文件,我正在使用 Allwmake 编译一个 OpenFoam 求解器。在某些情况下,文件路径已更改,因为求解器是为旧版本编写的。所以,我正在更新。

计算流体动力学网站建议我在主目录下安装 boost。升压路径无法识别。

我要求“完整”的解释,因为我已经尝试了很多。我迷路了。

每个都给了我文件或目录不存在的编译错误。

我需要帮助。我读了很多,我仍然一无所知,我需要一个完整的解释。

谢谢!

【问题讨论】:

  • 你试过 cd /boost/1.73.0/include/boost/math/tools 吗?
  • 真的不是很复杂,你只需将-I 选项中的一个指定的路径添加到#include 指定的路径中,并且该文件必须存在,例如如果你有-I/xxx/yyy#include "aaa/bbb.h",那么肯定有一个名为/xxx/yyy/aaa/bbb.h 的文件,真的很简单。
  • @John:boost 目录是 HOME 的一部分。我知道文件和路径存在,但编译器告诉我它们不存在。我已经尝试过你所说的,但我错过了一些东西。
  • @ChrisHarding 那么目前你的 -I 选项是什么意思,你的#include 是什么意思?
  • @John,我在评论中发布了 Make 选项文件中的 -I 选项。

标签: c++ boost


【解决方案1】:

您需要将该目录添加到编译器的包含搜索路径中。对于 g++ 和 clang,它是通过 -I 选项完成的。在你的情况下,那将是

g++ -I/boost/1.73.0/include.

永远不要修复源代码中的包含目录。这会将源代码与您的特定配置联系起来。它只会使代码在任何其他机器上都无法编译。

【讨论】:

  • 当我尝试你的建议时,我得到“g++: fatal error: no input files”
  • @ChrisHarding 显然你也必须编译一些东西。在不指定要编译或链接的文件的情况下运行 g++ 是没有意义的。
  • 当然,你需要添加你的输入文件、优化选项、输出文件等。它通常看起来像这样: g++ -Iinclude_dirs input_file0 input_file1 ... input_fileN -o compiled_file -O
  • 我忘了加上句号。当我完全按照您所说的进行操作时,出现以下错误。 "/usr/bin/ld: 找不到 .: 文件无法识别"
  • 能否请您发布您正在使用的具体命令行?
猜你喜欢
  • 1970-01-01
  • 2010-11-17
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
相关资源
最近更新 更多