当前位置: 技术问答>linux和unix
在一个工程中同时使用c++和c.
来源: 互联网 发布时间:2016-07-20
本文导语: 假设现在又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'。不知道有没有那位知道是怎么回事的? ...
假设现在又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'。不知道有没有那位知道是怎么回事的?
1.h
int a();
1.cpp
#include "1.h"
int a()
{
return 0;
}
main.c
int main()
{
a();
return 0;
}
如果这时我编译的话可以通过,但是链接时报错, undefined reference to `a'。不知道有没有那位知道是怎么回事的?
|
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" { }
#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" { }
|
用GCC来编译,
C++的文件记得用extern "c"来修饰。
C++的文件记得用extern "c"来修饰。
|
main.c不需要#include "1.h" ?