gpt4 book ai didi

c++ - 命名空间中的内联函数在 gcc 链接期间生成重复符号

转载 作者:可可西里 更新时间:2023-11-01 16:50:48 29 4
gpt4 key购买 nike

我有一个带有内联函数的命名空间,如果有多个源文件,它将被使用。尝试链接我的应用程序时,内联函数被报告为重复符号。似乎我的代码根本不会内联函数,我想知道这是否是预期的行为以及如何最好地处理它。

我使用以下 gcc 选项:-g -Wextra -pedantic -Wmissing-field-initializers -Wredundant-decls -Wfloat-equal -Wno-reorder -Wno-long-long在 VC7 环境中构建时,相同的代码风格似乎可以正确编译和链接。

下面的代码示例展示了代码的结构:

/* header.h */
namespace myNamespace {
inline bool myFunction() {return true;}
}

/* use_1.cpp */
#include "header.h"
...
bool OK = myNamespace::myFunction();
...

/* use_2.cpp */
#include "header.h"
...
bool OK = myNamespace::myFunction();
...

最佳答案

删除 dll/exe 的构建目录并重新编译。

构建可能存在一些问题。正如 OP 在上面的评论中提到的那样,它可能是预编译的 header 。我遇到了完全相同的问题,删除构建目录并重新编译解决了它。

关于c++ - 命名空间中的内联函数在 gcc 链接期间生成重复符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3763746/

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