首页 > 解决方案 > 在可视化解决方案 C++ 中出现链接器错误

问题描述

一个项目有两个文件 Hello.h 和 Hello .cpp

你好.h

#include <string>
#include <iostream>
class Hello{
    void print ();
}

你好.cpp

#include <Hello.h>
    void Hello:: print (){
    std::cout << "hello";
}

主文件

#include "Hello.h"
int main(){
    Hello hl;
    hl.print();
}

获取未定义的打印参考。在 Visual Studio 中如何设置要链接的目标文件?

标签: c++linker-errors

解决方案


我在这里看到两件事(您面临的未定义参考是由于第一点):

  1. Hello.cpp中,您已将标题包含为#include <Hello.h>而不是#include "Hello.h". 后者是当我们想要包含用户创建的头文件时我们应该做的,除非您已将头文件添加到系统头文件列表中(我假设您没有这样做)。有关更多信息,请参见包含语法

  2. 默认情况下,一个类会将其成员设为私有。因此,如果要访问该函数print(),则应将其指定为该类的公共成员函数。这会抛出错误: 'void Hello::print()' is private in this context,但由于上述观点,您没有得到这个。


推荐阅读