#ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif
int f(void) { return 1; }
.file "test.cxx" .text .align 2 .globl _f .def _f; .scl 2; .type 32; .endef _f: pushl %ebp movl %esp, %ebp movl $1, %eax popl %ebp ret
.file "test.cxx" .text .align 2 .globl __Z1fv .def __Z1fv; .scl 2; .type 32; .endef __Z1fv: pushl %ebp movl %esp, %ebp movl $1, %eax popl %ebp ret
//f1.c extern "C" { void f1() { return; } }
// test.cxx //这个extern表示f1函数在别的地方定义,这样可以通过 //编译,但是链接的时候还是需要 //链接上原来的库文件. extern void f1(); int main() { f1(); return 0; }
test.o(.text + 0x1f):test.cxx: undefine reference to 'f1()'
extern "C" { #include "f.h" }
extern "C" { extern void f1(); } int main() { f1(); return 0; }
posted on 2009-10-22 19:19 woka 阅读(186) 评论(0) 编辑 收藏 引用
Powered by: C++博客 Copyright © woka