如何使用extern链接到其他cpp文件中的函数?

时间:2015-11-14 01:29:28

标签: c++

这是我的main.cpp:

#include <iostream>
#include "function.cpp"

using namespace std;

extern int giveMain();

int main() {
    int x = 4;
    x = giveMain(x);
    cout << x << endl;
}

这是我的function.cpp:

#include <iostream>

using namespace std;

int giveMain(int a) {
    a = 3 + a;
    return a;
}

但是当我编译时,它说“链接器命令失败”。任何人都可以帮助我解决这个问题。

1 个答案:

答案 0 :(得分:3)

您在main.cpp中声明了函数int giveMain(),但function.cpp中的函数需要int。声明正确的函数,它应该工作。另外extern是功能的默认设置,因此您不需要包含关键字。

编辑:刚刚注意到你在main.cpp中#include <function.cpp>。永远不要包含.cpp文件。你遇到的问题是int giveMain(int)的多个定义,因为functions.cpp的内容被编译了两次。