与QT-Creator一起编译和链接C ++和C程序

时间:2016-01-24 17:55:26

标签: c++ c qt qt-creator

所以我有服务C ++文件,基本上需要在程序的C ++部分完成后调用C函数。所以,如果有一种方法可以以某种方式神奇地“启动C文件”(我希望你知道我的意思)我也很高兴听到这个。现在我的实际问题:我正在尝试在主C ++文件的主函数末尾调用C函数。我已经看到所有这些Call a C function from C++ code并试图以正确的方式做所有事情,我的C文件的头文件看起来像这样:

 #ifndef H_FILE
 #define H_FILE

 #ifdef __cplusplus
 extern "C" {
 #endif

 void foo();
 void bar();

 #ifdef __cplusplus
 }
 #endif

然后我尝试将头文件包含在C ++文件中:

 extern "C" {
 #include "folder/file.h"
 }

我还尝试了一个基本的#include“folder / file.h”

但是当我尝试使用C文件中的foo()函数时,我得到一个未定义的引用错误。我的.pro文件看起来像这样:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Example
TEMPLATE = app
QMAKE_CXXFLAGS += -std=c++11

SOURCES += main.cpp\
folder/file.c \

HEADERS  += main.h \

所以我想我必须添加某种标志才能正确编译,但我到底错过了什么?谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

你的头文件末尾可能还缺少一个#endif

答案 1 :(得分:0)

你需要明确地运行qmake然后重建