gcc - 使用 map 并使用 clang 编译时未定义的引用 eeror [abi:cxx11]
问题描述
我开始研究语言解析器,在使用 std::map<std::string, std::string> 时遇到了未定义的引用
/usr/bin/ld: /home/leksoBor/Desktop/research/neuLogo/src/./rules/0000_program_base/Program.hh:106: undefined reference to `ProgramObj::envCnfgTable[abi:cxx11]'
/usr/bin/ld: /home/leksoBor/Desktop/research/neuLogo/src/./rules/0000_program_base/Program.hh:107: undefined reference to `ProgramObj::envCnfgTable[abi:cxx11]'
/usr/bin/ld: /home/leksoBor/Desktop/research/neuLogo/src/./rules/0000_program_base/Program.hh:108: undefined reference to `ProgramObj::envCnfgTable[abi:cxx11]'
/usr/bin/ld: /home/leksoBor/Desktop/research/neuLogo/src/./rules/0000_program_base/Program.hh:109: undefined reference to `ProgramObj::envCnfgTable[abi:cxx11]'
/usr/bin/ld: parser.tab.o:/home/leksoBor/Desktop/research/neuLogo/src/./rules/0000_program_base/Program.hh:113: more undefined references to `ProgramObj::envCnfgTable[abi:cxx11]' follow
这是我收到的错误消息,代码如下:
static void resetEnvCnfgTable()
{
envCnfgTable.insert(std::pair<std::string,std::string>("version", "0.0") );
envCnfgTable.insert(std::pair<std::string,std::string>("description", "no description"));
envCnfgTable.insert(std::pair<std::string,std::string>("real-type", "64-bit"));
envCnfgTable.insert(std::pair<std::string,std::string>("whole-type", "32-bit"));
envCnfgTable.insert(std::pair<std::string,std::string>("random-type", "mersenne"));
};
static void printEnvCnfgTable()
{
for(std::map<std::string, std::string>::iterator it = envCnfgTable.begin(); it != envCnfgTable.end(); it ++)
{
std::cout << it -> first << " " << it -> second << '\n';
}
};
static std::map<std::string, std::string> envCnfgTable;
我用:
clang++ -g -c -Wall -std=c++11 -o ../../parts/grammar/Program.o Program.cc
有什么建议么?我看到了一些类似的线程,但无法解决问题。
解决方案
推荐阅读
- python - add calculated column using pandas based on values in other column
- elasticsearch - 在 Windows Logstash 服务中运行多个 conf 文件
- java - 使用实体列表在 JPA 中搜索和排序问题
- php - 如何将类中的 mySQL 结果传递给外部函数?
- android - 在 Recyclerview 中滚动后,选定的项目被取消选中
- three.js - 三个JS中camera LookAt和camera up的区别
- javascript - 在 Javascript 中更改 JSON 对象格式
- bluetooth - 为什么 bluetoothctl 正在扫描但不显示低功耗蓝牙设备?
- azure - 流分析:在同一个作业中处理压缩和未压缩的数据
- java - 如何将 JwtFilter 异常传递给服务器 JSON 答案?