2011-02-09 36 views
0

我真的不是C/C++链接魔术方面的专家。 g ++和Cygwin都没有,确实是一个新手。链接C++库,以便它可以调用C

想象一下,我有一个可执行文件(在我的情况下是Apache服务器),它接受C库作为模块。 例如编译后的文件libMyServer.so

如果我胆量在C++编码,并出口只有香草功能,一类的例子静态成员函数我会打电话CExportToC ......如果我这样做了会链接魔术让我的图书馆libMyServer从请求C库的程序可以访问?

回答

2

你不会在链接时做到这一点,你向编译器声明不要在生成代码时(这当然不允许重载)破坏名称。把你想要公开的东西的声明放到一个extern "C" { ... }块中。见例如FAQ。除非你愿意做大量的工作并与PITA生活在一起,否则这里的课程几乎不走运。即使如此,单个编译器编写者也可能会破坏您的代码(只能以运行时错误显示,而不是编译错误)。

+0

thx为FAQ链接。这似乎是我想要的。 – 2011-02-09 17:11:07

相关问题