我正在尝试使用code :: blocks和mingw创建一个简单的c ++程序,我遇到了某种链接错误。当我尝试构建项目时,ld返回1而没有其他详细信息。我尝试在线搜索有关此类问题的信息,但我找不到任何内容。
我尝试将example
的定义从test.hpp
移到test.cpp
,这确实解决了链接问题,但它使我无法访问{{1}来自导入example
的其他文件。我也尝试完全删除命名空间,但我想避免出于组织原因(如果这是一个完全不恰当的命名空间使用我很感激知道)。我试图让它最终使我的程序的几个部分能够在运行时访问和更新test.hpp
。
test.hpp
example
TEST.CPP
#include <map>
#include <string>
namespace testing{
std::map<std::string,int> example;
}
构建输出
#include "test.hpp"
#include <iostream>
namespace testing {
std::map<std::string,int> example;
}
答案 0 :(得分:3)
在某处应该有一个更全面的构建日志,它会说多次定义WebElement
。
解决方案很简单:只使用testing::example
关键字在头文件中声明变量:
extern
答案 1 :(得分:0)
标头和cpp都定义了变量example
。您应该将标头中的变量声明为extern
。
How do I use extern to share variables between source files?