这些天折腾QT,在整合各种代码的时候,老司机也碰到不少问题,为了方便后查,初步总结如下:

1.新版QT中一般使用g++编译cpp文件和c文件,可以在项目中同时使用c文件和cpp文件。

后缀cpp文件g++自动识别为c++代码自动进行c++编译,后缀c文件自动识别为c代码进行c编译。这个时候必须注意在c文件中不要使用c++内容和c++的头文件

2.调用.c文件中的函数出现undefined reference to `xxxxx()'。

这是C/C++兼容问题,在C的头文件的相关函数声明添加extern "C"即可解决,例如

#ifdef __cplusplus

extern "C" {

#endif

extern int test(int, int);

#ifdef __cplusplus

}

#endif

3.出现error: memory: No such file or directory #include

这是.c文件中引用c++标准的原因,可将文件后缀修改为.cpp,使用C++编译

4.出现unknown type name ‘namespace’

这是c编译c++的问题, c中没有namespace关键子,可将文件后缀修改为.cpp,使用C++编译,或者去掉该关键字

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐