在 Makefile.PL 中使用-pthread
( not )指定编译和链接的正确方法是什么?-lpthread
我的理解是,在针对 pthread 构建时应该调用 gcc -pthread
,因为这个标志扩展为正确的平台特定标志,用于编译和链接。
我开始:
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 的用法是否放在-pthread
正确的位置。(用户定义出现在编译命令的末尾。)此外,LIBS 参数被忽略,因为它看起来不像典型的-l
/-L
链接器参数:“LIBS 中无法识别的参数被忽略:'-pthread'”。