在 C++ 中链接内联函数的问题

Problems with linking inline functions in C++

test2.h

#ifndef TEST2_H_INCLUDED
#define TEST2_H_INCLUDED
#include "test1.h"

inline int add(int,int);

#endif // TEST2_H_INCLUDED

test2.cpp

#include "test2.h"

inline int add(int a,int b){
    return a+b;
}

main.cpp

#include <iostream>
#include "test2.h"

int main()
{
    std::cout << add(1,2);
    return 0;
}

错误:

warning: inline function add(int,int) used but never defined
undefined reference to add(int,int)
ld returned 1 exit status

但是如果我从文件中删除 inline,代码编译并执行得很好。我做错了什么?

注:stack overflow上的线程我都看过了,虽然和我的问题很相似,但是回答都不能解决我的问题

将 mingw 编译器与代码块一起使用

您必须在头文件中定义内联函数,更多信息请参见 .

//test2.h
#ifndef TEST2_H_INCLUDED
#define TEST2_H_INCLUDED
#include "test1.h"

inline int add(int a,int b) {
    return a+b;
}

#endif // TEST2_H_INCLUDED