C语言无法解析的外部信号 在_main,在C++控制台项目中使用C工程代码时的注意,避免出现error LNK2019: 无法解析的外部符号...

当我们在写 C++控制台项目时候,有时用到一些线程的算法代码项目,这些代码项目是用c写的。当使用时,需要在c的头文件中标注如下内容,才能使得cpp文件能够编译使用c的函数等,才避免在编译时候出现error LNK2019: 无法解析的外部符号###,在_main中引用,这样的错误。如下面:

号 "int __cdecl sift_features(struct _IplImage *,struct feature * *)" (?sift_features@@YAHPAU_IplImage@@PAPAUfeature@@@Z),该符号在函数 _main 中被引用 1>picturecopy1.obj : error LNK2019: 无法解析的外部符号 "struct _IplImage * __cdecl stack_imgs(struct _IplImage *,struct _IplImage *)" (?stack_imgs@@YAPAU_IplImage@@PAU1@0@Z),该符号在函数 _main 中被引用 1>picturecopy1.obj : error LNK2019: 无法解析的外部符号 "void __cdecl fatal_error(char *,...)" (?fatal_error@@YAXPADZZ),该符号在函数 _main 中被引用 1>C:\Users\acer\documents\visual studio 2010\Projects\picturecopy1\Debug\picturecopy1.exe : fatal error LNK1120: 7 个无法解析的外部命令。

此时需要这样解决:

在调用函数的xx.h文件的首尾添加:

#ifdef __cplusplus (其中__cplusplus是cpp中自定义的一个宏!!!)

extern "C"{

#endif

//-------------开始写.h

#include

xx.h的全部内容。

void function();

......

#ifdef __cplusplus

}

#endif

按照以上格式即可以不出现编译error LNK2019: 无法解析的外部符号。。。问题。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值