我們拿在Qt項目中加入純C語言寫的代碼文件來舉例
問題
在Qt項目中如果加入純C語言寫的代碼文件后,Qt工程就會無法編譯。
解決方法
在純C語言寫的代碼文件的頭文件中加入以下內容即可
#pragma once //C++ 運行該文件時,extern C包含的內容用C語言方式連接 #ifdef __cplusplus extern "C"{ #endif //C代碼內容所在位置 #ifdef __cplusplus } #endif
實例
純C語言寫的代碼文件為:test.h,test.c
其中test.c文件內容為:
#include "test.h" #include <stdio.h> int add(int a,int b) { return a+b; }
則test.h文件內容應為:
#ifndef TEST_H #define TEST_H //C++ 運行該文件時,extern C包含的內容用C語言方式連接 #ifdef __cplusplus extern "C"{ #endif #include <stdio.h> int add(); #ifdef __cplusplus } #endif
#endif