未找到CPP中外部源的功能(Qt)

时间:2017-11-13 18:08:22

标签: c++ c qt

在Qt中,我希望在单击按钮时运行特定功能。所以我做了一个按钮并使用了" connect()"函数运行一些子程序" initializeButtonPushed"

void MainWindow::initializeButtonPushed(){
    initializePlatform();
}

够简单。在文件" mainwindow.h"有一条线

#include "platform.h"

和platform.h内部的定义" void initializePlatform(void);"

同样在我的c源代码中,我有一个platform.c文件,其中包含此函数的实际代码。

除此之外,我已经可以看到我的Qt项目的.pro文件包含了这些文件。

所以考虑到这一点,似乎编译器应该能够找到这些文件,但是当我尝试编译我的代码时,我得到错误:

undefined reference to 'initializePlatform()'
collect2:error: ld returned 1 exit status

我不太了解cpp,我通常使用C但是需要Qt用于此程序,所以也许我错过了一些东西,但我不明白为什么它说我的功能是不确定的我什么时候可以将源文件视为我项目的一部分,并知道它的代码在该文件中。

1 个答案:

答案 0 :(得分:3)

你需要这个

extern "C"{

#include "platform.h"
}

这允许c ++编译器和链接器正确链接用c

编写的函数