首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从C++代码调用C函数

从C++代码调用C函数
EN

Stack Overflow用户
提问于 2013-05-31 14:27:21
回答 1查看 106.9K关注 0票数 100

我有一个想要从C++调用的C函数。因为无法使用g++编译C函数,所以我不能使用"extern "C" void foo()“这种方法。但它可以使用gcc编译得很好。你知道怎么从C++调用这个函数吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 14:29:50

像这样编译C代码:

代码语言:javascript
复制
gcc -c -o somecode.o somecode.c

然后C++代码如下所示:

代码语言:javascript
复制
g++ -c -o othercode.o othercode.cpp

然后使用C++链接器将它们链接在一起:

代码语言:javascript
复制
g++ -o yourprogram somecode.o othercode.o

当您包含C函数的声明时,您还必须告诉C++编译器一个C标头即将到来。所以othercode.cpp是这样开头的:

代码语言:javascript
复制
extern "C" {
#include "somecode.h"
}

somecode.h应该包含如下内容:

代码语言:javascript
复制
 #ifndef SOMECODE_H_
 #define SOMECODE_H_

 void foo();

 #endif

(我在本例中使用的是gcc,但其原理对于任何编译器都是相同的。分别构建为C和C++,然后将其链接在一起。)

票数 143
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16850992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档