gpt4 book ai didi

c++ - C 枚举引用未定义,但位于包含的头文件中?

转载 作者:行者123 更新时间:2023-11-30 17:11:50 26 4
gpt4 key购买 nike

所以,我正在使用 GNUTLS,它有这个枚举:

typedef enum {
GNUTLS_PK_UNKNOWN = 0,
GNUTLS_PK_RSA = 1,
GNUTLS_PK_DSA = 2,
GNUTLS_PK_DH = 3,
GNUTLS_PK_EC = 4
} gnutls_pk_algorithm_t;

位于它的主头文件中(gnutls.h,版本 3.3.17)。我在这里引用它:

    unsigned int bits = gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, GNUTLS_SEC_PARAM_LEGACY);

(就在示例之外)。我确实有#include <gnutls/gnutls.h> ,并且所有这些似乎都引用良好(其他枚举都很好,除了 GNUTLS_X509_FMT_PEM )。我读到一些关于编译器看不到 gnutls.h 的内容,它位于 /usr/local/include 中而不是/usr/include ,但是我确实在 Eclipse 的 Includes 方面有这个内容。如果它是编译器未找到它,为什么它会找到一些值,以及如何让它找到它?如果不是,问题出在哪里?

最佳答案

怎么找?将 -I/usr/local/include 添加到 gcc 命令行,或在 makefile 中添加 CFLAGS,或者查看 here for how to add it in eclipse

如果编译器找到一些值但没有找到包含,则它们可能在其他地方定义。尝试重新定义它们,并查看错误中其他定义所在的位置。要重新定义,您可以声明为不同的类型(例如:typedef intwhatever;,查看是否以及在何处声明whatever),因为如果它是相同的 typedef,则可以将其视为向前减速。

关于c++ - C 枚举引用未定义,但位于包含的头文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31953314/

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