还是那个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}包含c头文件

在C++项目中,当包含C头文件时可能会遇到'undefined reference'错误,原因是C++函数编译后的符号处理与C不同。解决办法是在C++代码中使用extern "c"包裹C头文件。此外,C语言通过getopt()函数读取命令行参数,但需要注意正确使用和初始化相关参数。
最低0.47元/天 解锁文章

1151

被折叠的 条评论
为什么被折叠?



