我有一个想要从C++调用的C函数。因为无法使用g++编译C函数,所以我不能使用"extern "C" void foo()
“这种方法。但它可以使用gcc编译得很好。你知道怎么从C++调用这个函数吗?
发布于 2013-05-31 14:29:50
像这样编译C代码:
gcc -c -o somecode.o somecode.c
然后C++代码如下所示:
g++ -c -o othercode.o othercode.cpp
然后使用C++链接器将它们链接在一起:
g++ -o yourprogram somecode.o othercode.o
当您包含C函数的声明时,您还必须告诉C++编译器一个C标头即将到来。所以othercode.cpp
是这样开头的:
extern "C" {
#include "somecode.h"
}
somecode.h
应该包含如下内容:
#ifndef SOMECODE_H_
#define SOMECODE_H_
void foo();
#endif
(我在本例中使用的是gcc,但其原理对于任何编译器都是相同的。分别构建为C和C++,然后将其链接在一起。)
https://stackoverflow.com/questions/16850992
复制相似问题