这个问题基于:Perl:我如何将所有内联C代码放在一个单独的文件中?,但是对于多个文件。
假设您想在perl中包含名为foo.c
:的C文件
#include "bar.h"
int foo(...
如您所见,foo.c
依赖于与bar.c
关联的bar.h
。
有没有一种方法Inline::C可以编译foo.c
和bar.c
并链接bar.o
,使foo()
正常工作?
Inline::C根据提供的代码在以前不存在的目录中生成一个.xs
文件。然后,它使用标准Perl工具链从中创建一个共享库。在任何时候都没有任何foo.c
或bar.c
可供工具链编译。
您可以从所描述的两个编译单元(foo.c
和bar.c
(创建一个库(静态或共享(。内联::C可以很容易地链接到这些。Alien为创建模块库提供了基础设施。本页记录了如何创建构建您的库的Alien::*模块。