在一个工程中同时使用c++和c.

scmsir 2009-12-07 03:46:57
假设现在又3个文件
1.h
int a();
1.cpp
#include "1.h"
int a()
{
return 0;
}

main.c
int main()
{
a();
return 0;
}

如果这时我编译的话可以通过,但是链接时报错, undefined reference to `a'。不知道有没有那位知道是怎么回事的?
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
scmsir 2009-12-07
  • 打赏
  • 举报
回复
谢谢大家。可以了。我在.cpp里面也加了这些。
scmsir 2009-12-07
  • 打赏
  • 举报
回复
谢谢提醒。这个是我打字的时候的错误。main.c里肯定要include"1.h"的。
scmsir 2009-12-07
  • 打赏
  • 举报
回复
谢谢大家。比较奇怪的是这个小例子确实可以编译通过,但是我的工程里面的代码还是不行。我再查查。
LeosDing 2009-12-07
  • 打赏
  • 举报
回复
main.c不需要#include "1.h" ?
pottichu 2009-12-07
  • 打赏
  • 举报
回复
1.h

#ifdef __cplusplus
extern "C" {
#endif

int a();


#ifdef __cplusplus
}
#endif


1.cpp
#include "1.h"
int a()
{
return 0;
}



main.c
int main()
{
a();
return 0;
}

注意使用
extern "C" { }
Wenxy1 2009-12-07
  • 打赏
  • 举报
回复
用GCC来编译,
C++的文件记得用extern "c"来修饰。

23,117

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧