gpt4 book ai didi

c++ - g++ 外部引用错误

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

我有一个在 g++ 上重现的问题。 VC++没有遇到任何问题。所以我有 2 个 cpp 文件:

1.cpp:

#include <string>
#include <iostream>

extern const std::string QWERTY;

int main()
{
std::cout << QWERTY.c_str() << std::endl;

}

2.cpp:

#include <string>
const std::string QWERTY("qwerty");

没有魔法,我只是想将字符串常量放入单独的文件中。在链接时 ld 产生错误:“未定义对 `_QWERTY' 的引用”第一个想到将两个声明都包装到“extern“C””中的人 - 没有帮助。错误和非 C++ _QWERTY 仍然存在。

提前感谢您的任何建议

最佳答案

看起来您可能遇到了标准的这一点:

In C, a const-qualified object at file scope without an explicit storage class specifier has external linkage. In C++, it has internal linkage.

对 2.cpp 进行此更改:

#include <string>
extern const std::string QWERTY("qwerty");

关于这个问题中“链接”的含义有更多详细信息 - What is external linkage and internal linkage in C++ .

关于c++ - g++ 外部引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404394/

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