gpt4 book ai didi

C++ include 重新声明

转载 作者:搜寻专家 更新时间:2023-10-31 00:21:36 25 4
gpt4 key购买 nike

我的包含路径中有两个库:

/usr/local/include/lib1/
/user/include/lib2/

两者都定义了一个头文件“vec.h”,我得到以下错误:

/usr/local/include/lib1/vec.h:22: error: redeclared with...

如何处理?

最佳答案

你这样做:

#include "lib1/vec.h"
#include "lib2/vec.h"

然后您的 makefile 应该包含指向 lib1 和 lib2 的路径。

-I /usr/local/include /user/include

您应该确保 header 周围有防护装置,以确保它们不会被声明两次。你应该看到类似这样的东西:

#ifndef MYHEADER_H_ab2592zx1__
#define MYHEADER_H_ab2592zx1__

#include ...
#include ...
class ...

#endif

无论您是否有两个同名的 include,您都应该拥有这些守卫,并且它们通常应该以相当随机的内容结尾,以限制/降低它们与另一个文件中的 header 守卫冲突的可能性。

关于C++ include 重新声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4429739/

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