我有在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仍然存在。
在此先感谢您的任何建议
最佳答案
看来您可能正在碰到此标准的这一部分:
将此更改更改为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/