C ++:使用#include<>放置文件的位置带尖括号

时间:2016-05-27 04:18:11

标签: c++ opengl boost

上下文:

我正在尝试运行Jarno Elonen在http://elonen.iki.fi/code/tpsdemo/提供的薄板样条的代码。它需要安装OpenGL + GLUT和Boost uBlas库。我已下载代码,但由于编译器无法找到GLUT和Boost文件,因此无法运行它。

我希望有人可以在网站上运行代码(而不只是解决我面临的直接问题),并告诉我要让它运行的确切步骤。 (我不介意你完全愚蠢,我是初学者:))

到目前为止我做了什么:

  • 从上面的网站下载并解压缩tpsdemo-1.2.tar.gz
  • 下载FreeGLUT(因为各种在线论坛告诉我,我应该这样做,因为GLUT本身已经过时了......):freeglut.sourceforge.net/index.php#download中的Freeglut 3.0.0。
  • 下载了Boost:boost_1_61_0.zip,来自www.boost.org/users/history/version_1_61_0.html。

我不知道该怎么做...我应该把这些文件放在哪里,以便tpsdemo-1.2的代码可以访问它们?我已经尝试将它放在同一目录中,但这似乎需要使用带引号的#include "filename"而不是带有尖括号的#include <filename>,这在提供的代码中。如果我这样改变它,那么似乎我将不得不改变GLUT和Boost中的所有include语句(目前使用尖括号),这不是一个小任务。 (我真的不想修改太多的代码......)这样做的正确方法是什么?我在编译时尝试使用-Idir标签,但这会遇到其他问题,虽然我不知道这个问题是否与GLUT / Boost有关(这就是我希望看到的原因)如果其他人可以让代码运行!)

1 个答案:

答案 0 :(得分:1)

#include中的楔形括号用于表示系统或框架级别上存在的文件。因此,永远不会通过将它们移动到“正确”的位置来获取它们,而是指定哪些目录被视为“系统”或“框架”级别。最终的确切方法取决于所使用的编译器,但所有主要编译器都能理解-I${PATH_TO_INCLUDE_DIRECTORY命令行选项表示法。可以多次指定-I…以指定多个目录。

使用wedge括号包括专门用于项目第三方的头文件和/或构成项目框架的头文件是一种很好的风格。对于属于项目模块的标题,应使用引号。