参见这篇帖子。
关于C语言中的extern,一个例子:
1.c文件如下:
#include <stdio.h>
int fun1(int i)
{
return i + 1;
}
void main()
{
int i;
extern int j;
extern int fun2(int i);
printf("%d\n", fun2(j));
}
2.c文件如下:
extern int fun1(int i);
int j = 3;
int fun2(int i)
{
return fun1(i) + 2;
}
编译运行:
$ gcc -c 1.c 2.c
$ gcc 1.o 2.o -o 1
$ ./1
输出结果为6.
关于C调用C++、C++调用C,请参考上面帖子链接中的例子。
对于C和C++的混合编译,参考这个帖子。
一个例子:
$ g++ -c cpp2c.cpp -o cpp2c.o
$ gcc -c csayhello.c -o csayhello.o
$ gcc cpp2c.o csayhello.o -lstdc++ -o cpp2c
注意到,在最后链接的时候指定 C++ 标准库是必须的,这是因为我们用的是 gcc 而不是 g++ 调用的链接器。最后如果使用的是 g++ 的话,C++ 标准库默认会被链接。
没有评论:
发表评论