一.Qt或者C++中调用C函数方法
1.如果在Qt或者C++文件中直接调用.c文件中的C函数是会报错的,如:
error: undefined reference to `vendor_app_handle()'
2.这种情况有两种解决方法:
(1)在头文件中直接使用
#ifdef __cplusplus
extern "C" {
#endif
#include "xxx.h"
int vendor_app_handle(void);
#ifdef __cplusplus
}
#endif
(2) 在需要调用c函数的cpp文件中包含对应的.h文件,然后就可以直接调用c函数了
二.完整代码示例
1.function.h
#ifndef FUNCTION_H
#define FUNCTION_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
int add(int a, int b);
char *rstr(char *str);
#ifdef __cplusplus
}
#endif
#endif
2.function.c
#include "function.h"
int add(int a, int b)
{
return a+b;
}
char *rstr(char *str)
{
return str;
}
- mainwindow.cpp 调用结果 :