• 5636阅读
  • 6回复

[提问]关于qt里实现.c和.cpp混编的问题 [复制链接]

上一主题 下一主题
离线ssa8023ddy
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-19
        背景:小弟和几个同学做一个嵌入式项目,小弟负责客户端的qt界面,另外几位同学搞后台的tcp通讯,他们是用c语言写的linux下的tcp通信(包含了很多linux系统的库函数),小弟编写的文件这里暂称为qt文件(包含头文件和源文件),他们写的文件暂称为c文件(包含头文件和源文件)。
        问题:小弟在qt文件里需要用到c文件的地方统统使用 extern "C" { #include "xxxxx.h" }这样的格式,这没问题;但是在c文件里包含qt头文件时直接使用#include "xxxxxx.h" 时,编译弹出上千条错误,而我把#include "xxxxxx.h" 注释掉,编译则通过。 如图:
      
离线ssa8023ddy
只看该作者 1楼 发表于: 2012-04-19
请教各位大大如何解决啊,纠结在这里很久了
离线dbzhang800

只看该作者 2楼 发表于: 2012-04-19
不清楚你为什么会想到要在C源代码中 包含C++的头文件
离线ssa8023ddy
只看该作者 3楼 发表于: 2012-04-19
回 2楼(dbzhang800) 的帖子
因为在c源文件里接受到了服务器发来的信息,要把这些信息传到我的界面里
离线dbzhang800

只看该作者 4楼 发表于: 2012-04-19
那你就提供一个C接口函数,然后在C代码中进行回调。

题外:你们把所有的.c 文件改成 .cpp 不就没有这些问题了么?
离线fish0619

只看该作者 5楼 发表于: 2012-04-19
提供给c代码的接口必须和提供给Qt代码的头文件独立开来。你的Qt代码也可以包含这些c接口。
离线fish0619

只看该作者 6楼 发表于: 2012-04-19
引用第4楼dbzhang800于2012-04-19 11:25发表的  :
那你就提供一个C接口函数,然后在C代码中进行回调。
题外:你们把所有的.c 文件改成 .cpp 不就没有这些问题了么?

有道理。不过也有可能是他们交叉编译时只有gcc可以用吧。
快速回复
限100 字节
 
上一个 下一个