在Makefile.PL中指定编译和链接{{1>}(不 -pthread
)的正确方法是什么?
我的理解是,在构建针对pthread时,应该使用-lpthread
调用gcc,因为此标志会扩展为编译和链接的正确平台特定标志。
我开始时:
-pthread
但是,我不确定DEFINE的用法是否将use Config;
my %mm = ( NAME => 'Local::Example::Pthreaded', ...);
...
if ($Config{ccname} eq 'gcc') {
$mm{DEFINE} = join(' ', '-pthread', $mm{DEFINE}); # ??? in the right place?
$mm{LIBS} = ['-pthread']; # XXX ignored!
}
WriteMakefile(%mm);
放在正确的位置。 (用户DEFINE出现在编译命令的末尾。)此外,LIBS参数被忽略,因为它看起来不像典型的-pthread
/ -l
链接器参数:“忽略LIBS中无法识别的参数: '-pthread'”。