所以我有服務的C++文件,基本上需要在我的程序的C++部分完成後調用C函數。所以,如果有一種方法可以神奇地「啓動C文件」(我希望你明白我的意思),我也很樂意聽到這個消息。現在到我的實際問題:我試圖在主C++文件的主函數結尾處調用C函數。我已經看到了這一切Call a C function from C++ code,並試圖做的一切正確的方式,爲C文件我的頭文件看起來有點像這樣:編譯和鏈接C++和C程序連同QT-Creator
#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「文件夾/ file.h」
但我發現了,當我試圖使用,把foo()函數從一個未定義的引用錯誤我C文件。我的.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 \
所以我想我必須添加一些種類標誌爲它被正確編譯,但是我錯過了什麼?感謝您的幫助!
你重新運行qmake的Qt Creator中? (我想這就是你正在使用的) – owacoder
是的,這就是我正在使用的。我只是這樣做,但不幸的是沒有改變。 – user3839833
運行qmake後,嘗試重建項目。如果代碼很好,它應該正確構建。 – owacoder