如何解决perl Inline :: C是否支持多个相关的C文件?
此问题基于:Perl: how can I put all my inline C code into a separate file?,但用于多个文件。
假设您要在名为foo.c
的perl中包含C文件:
#include "bar.h"
int foo(...
如您所见,foo.c
取决于与bar.h
关联的bar.c
。
Inline :: C是否可以同时编译foo.c
和bar.c
并链接bar.o
以便foo()
正常工作?
解决方法
Inline :: C根据提供的代码在以前不存在的目录中生成一个.xs
文件。然后,它使用标准的Perl工具链从中创建一个共享库。在任何时候都没有foo.c
或bar.c
可供工具链编译。
您可以根据您描述的两个编译单元(foo.c
和bar.c
)创建一个库(静态或共享)。内联:: C可以轻松链接到这些。 Alien提供了用于创建要使用的模块的库的基础结构。 This page介绍了如何创建用于构建库的Alien :: *模块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。