c和c++混合编译问题
在vs2010中,imagecompare.cpp负责调用open vc的一些接口对比图片,之后调用qiniutest.c中的函数上传图片。
1 在qiniutest.h中声明了该函数:
void QiNiuUploadeFileWithPath(const char* pLocalFilePath);
2 qiniutest.c中包含了上述头文件:
#include "qiniutest.h"
void QiNiuUploadeFileWithPath(const char* pLocalFilePath)
{
InitQiNiu();
demoUploadFile(&client, bucketName, &mac, pLocalFilePath);
QiNiuExit();
}
3 imagecompare.cpp也包含了上述头文件,并用__cplusplus宏控住:
#ifdef __cplusplus
extern "C" {
#endif
#include "qiniutest.h"
#ifdef __cplusplus
}
#endif
......
int main(int argc, char** argv)
{
...
QiNiuUploadeFileWithPath(pLocalFilePath);
...
}
最后编译的时候提示:1>imagecompare.cpp(69): error C2065: “QiNiuUploadeFileWithPath(pLocalFilePath)”: 未声明的标识符
在网上没搜到解决方法,新建了一个工程测试带main函数的cpp文件调用c文件中的函数没问题,有遇到过此问题的吗?