编译并链接C++;和C程序以及QT Creator P>我有Services C++文件,基本上需要在程序的C++部分完成后调用C函数。因此,如果有一种方法可以神奇地“启动C文件”(我希望你知道我的意思),我也会很高兴听到这个消息。现在我要解决的实际问题是:我试图在主C++函数的结尾调用C函数。我已经看到了所有这些,并尝试以正确的方式执行所有操作,我的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" }

编译并链接C++;和C程序以及QT Creator P>我有Services C++文件,基本上需要在程序的C++部分完成后调用C函数。因此,如果有一种方法可以神奇地“启动C文件”(我希望你知道我的意思),我也会很高兴听到这个消息。现在我要解决的实际问题是:我试图在主C++函数的结尾调用C函数。我已经看到了所有这些,并尝试以正确的方式执行所有操作,我的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" },c++,c,qt,qt-creator,C++,C,Qt,Qt Creator,我还尝试了一个基本的#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/

我还尝试了一个基本的#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 \

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

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

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

您需要明确运行qmake然后重新生成

您需要明确运行qmake然后重新生成

您在Qt Creator中重新运行qmake了吗?(我想你用的就是这个)是的,我用的就是这个。我只是这样做了,但不幸的是没有任何改变。请尝试在运行qmake后重建项目。如果代码没有问题的话,它应该可以正确构建。那么我想可能是出了什么问题。职业选手还好吗?没有什么我可能忘记的?单击Strg+鼠标左键也会将我传输到文件.h中用于c文件的方法行。您应该确保在
.c
文件中有
foo()
bar()
的定义。您还可以尝试将C头文件添加到
.pro
文件中,看看会发生什么。您是否在Qt Creator中重新运行了qmake?(我想你用的就是这个)是的,我用的就是这个。我只是这样做了,但不幸的是没有任何改变。请尝试在运行qmake后重建项目。如果代码没有问题的话,它应该可以正确构建。那么我想可能是出了什么问题。职业选手还好吗?没有什么我可能忘记的?单击Strg+鼠标左键也会将我传输到文件.h中用于c文件的方法行。您应该确保在
.c
文件中有
foo()
bar()
的定义。您也可以尝试将C头文件添加到
.pro
文件中,看看会发生什么