VS2017 C++空项目添加简单类后出现链接器问题求助
解决VS2017空项目中C++类的链接器问题
嘿,我一眼就瞅出你这个链接器报错的问题根源啦!咱们先从代码本身找问题,再核对VS的配置:
1. 代码里的核心错误
你在test.cpp里定义getInfo()函数时,漏掉了类作用域前缀test::,导致这个函数变成了全局函数,而不是test类的成员函数。当你在main.cpp里尝试调用test类的getInfo()成员函数时,链接器找不到对应的类成员实现,自然就报错了。
修正后的test.cpp代码应该是这样:
#include "test.h" test::test() {} test::~test() {} std::string test::getInfo() { return "test"; } // 加上test::前缀,明确是类的成员函数
2. VS2017项目配置检查(空项目容易踩的坑)
因为你用的是空项目模板,有些默认配置需要确认:
- 确保所有
.cpp文件都被加入项目:右键项目 → 添加 → 现有项,把test.cpp和main.cpp都选进去(如果之前没手动添加的话) - 确认项目类型是可执行程序:右键项目 → 属性 → 配置属性 → 常规,检查「配置类型」是否为
应用程序(.exe) - 适配C标准:右键项目 → **属性 → 配置属性 → C/C → 语言**,选择C++11或更高版本(毕竟用到了
std::string)
3. 补充main函数的正确调用示例
如果你的main.cpp里还没写完整的调用代码,参考下面的示例:
#include <iostream> #include <string> #include "test.h" int main() { test myTest; std::cout << myTest.getInfo() << std::endl; return 0; }
做完这些步骤,重新编译运行应该就能正常工作啦!
内容的提问来源于stack exchange,提问作者Florian Haider
相关产品推荐
相关产品推荐

