还是那个Linux移植的工程,出了简单的移植外,还要在原有代码的基础上做2次开发,但原先的工程是给专业人士用的,用c写的在Linux下的命令行运行,现在为了方便非专业人员使用需要移植到Windows平台下,还要搭配上一个一个GUI界面,由于本人只会C++写界面,所以选择了C++进行二次开发。
Q1:在C++文件中包含C头文件报错,undefined reference
A1:出现问题的原因是c库函数编译成obj文件时对函数符号的处理和C 不同。因为C ++函数支持重载,所以函数符号的处理要更复杂一些,c往往不作修饰。同一个函数,c编译出来的方法名要比c++简单一些,两者的obj中方法名不同,自然在连接时会出现undefined reference错误了。
解决办法:使用extern "c"{#include xxx<