我工作的一个游戏中使用的视觉C++。我有一些成分中的单独项目,并且已经设置的项目依赖关系。我怎么#包括一个标题的文件从一个不同的项目?我不知道如何使用的课程从一个项目,在另一个。

有帮助吗?

解决方案

编译器的设置

在要从另一个项目中#include头文件的项目中,您需要将头文件的路径添加到其他包含目录部分在项目配置中。

访问项目配置:

  1. 右键单击项目,然后选择“属性”。
  2. 选择配置属性 - > C / C ++ - >常规。
  3. 在“其他包含目录”下设置路径。
  4. 如何包含

    包含头文件,只需在代码中写下以下内容:

    #include "filename.h"
    

    请注意,您不需要在此处指定路径,因为您已在“包含其他目录”中包含该目录,因此Visual Studio将知道在哪里查找它。

    如果您不想在项目设置中添加每个头文件位置,您可以只包含一个目录,然后#include相对于该点:

    // In project settings
    Additional Include Directories    ..\..\libroot
    
    // In code
    #include "lib1/lib1.h"    // path is relative to libroot
    #include "lib2/lib2.h"    // path is relative to libroot
    

    设置链接器

    如果使用静态库(即.lib文件),您还需要将库添加到链接器输入,以便在链接时可以链接符号(否则您将获得未解析的符号):

    1. 右键单击项目,然后选择“属性”。
    2. 选择配置属性 - >链接器 - >输入
    3. 在Additional Dependencies下输入库。

其他提示

#include 没有任何与项目-这只是告诉预处理"放在内容标题的文件在这里"。如果你给这一路指向正确的位置(可能是一个相对的道路,就像../your_file.h)它将包括正确。

你会的,但是,必须了解图书馆(静态/自动图书馆),以便使这些项目的链接,正确-但这是另一个问题。

您需要在项目属性中设置标题的路径,以便编译器在尝试查找头文件时查看。我不记得确切的位置,但看看项目属性,你应该看到它。

尽量避免#include指令中的完整路径引用,无论它们是绝对的还是相对的。而是在项目设置中添加其他项目的包含文件夹的位置。必要时,仅在路径引用中使用子文件夹。这样,无需更新代码就可以更轻松地移动内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top