是否有ExtUtils::*
或Module::Build
(或其他)類似於Ruby的mkmf.have_struct_member
?如何判斷C結構在Perl XS中是否有成員?
我想這樣做(在提示/文件的方式):
....
if struct_has_member("msghdr", "msg_accrights") {
$self->{CCFLAGS} = join(' ', $self->{CCFLAGS}, "-DTRY_ACCRIGHTS_NOT_CMSG");
}
...
Config.pm
不跟蹤我正在尋找的特定信息,並ExtUtils::FindFunctions
沒」在這裏看起來很合適......
你想知道的話,C庫是一個結構包含一個給定的成員?比如time.h中是否存在'tm.tm_gmtoff'? – Schwern 2010-01-21 07:56:50
@Schwern,是的。在這種特殊情況下,無論'struct msghdr'是否有'msg_accrights'。 – pilcrow 2010-01-21 14:07:06
該AFAIK沒有預建的Perl數據庫。通常你使用ExtUtils :: CBuilder編譯一個測試程序。可能有一個CPAN模塊來完成它,但它沒有內置到MakeMaker或Module :: Build中。 – Schwern 2010-01-21 20:04:43