C++ visualc&x2B+;包括文件夹、库等

C++ visualc&x2B+;包括文件夹、库等,c++,header,include,C++,Header,Include,我是一名工程师,不是一名优秀的程序员。我正在使用openGL和freeglut编写一些模拟。我在家里、学校或工作中使用电脑进行开发,所以我需要控制一切。通常,我将所需的库放在解决方案文件夹中,并在项目属性中链接到它们,从而使工作正常进行。我还将所有头文件放入解决方案文件夹(或子文件夹,如果已定义,例如GL/freeglut.h)。然后在我的源文件中,我使用了一个命令,比如带引号的include“GL/freeglut.h”。在我最近的项目中,我遇到了另一组头文件的问题,这些头文件处理具有相同名称

我是一名工程师,不是一名优秀的程序员。我正在使用openGL和freeglut编写一些模拟。我在家里、学校或工作中使用电脑进行开发,所以我需要控制一切。通常,我将所需的库放在解决方案文件夹中,并在项目属性中链接到它们,从而使工作正常进行。我还将所有头文件放入解决方案文件夹(或子文件夹,如果已定义,例如GL/freeglut.h)。然后在我的源文件中,我使用了一个命令,比如带引号的include“GL/freeglut.h”。在我最近的项目中,我遇到了另一组头文件的问题,这些头文件处理具有相同名称的类的硬件。我的理解是,如果您将标题保存在单独的文件夹中,并且小心使用名称空间,那么应该不会有问题。我还可以为项目配置其他包含文件夹,然后使用类似于
#include
的命令。什么是最好的方法来设置所有这些?

FLeGLUT是C而不是C++,所以没有命名空间。如果您的其他库也是C,那么您将遇到问题。最好的办法是将其中一个重新编译为C++并用命名空间块包装它的文件。在它被编译到库中之后,你不能做任何事情(我知道)。C语言中的标准实践是为每个项目/库使用不同的前缀,以避免这种情况,但有时会发生冲突。我没有说freeglut有名称空间,但我使用的其他头有名称空间。换句话说,将文件夹:bin、include、lib放在我的项目文件夹中是好还是坏的做法,还是将所有内容都转储在同一个文件夹中?这一切是如何工作的?通常你应该有一个共同的文件夹。在UNIX上通常是
/usr/*
,在Windows上我不知道惯例是什么。它使更新库变得更加容易,因为您没有太多的副本。此外,通常可以将IDE设置为包含、库等文件夹,这些文件夹在所有项目中共享,这样您就不需要为每个新应用程序设置所有内容。图书馆有时也有自己的惯例,这使事情复杂化。我没有公用文件夹的好处。我在3个不同的地方使用不同系统管理的计算机。