如何让Module::Build编译并链接我的小C程序



我的项目中的src目录中有一个简单的C源文件。我的Build.PL包含以下行:

c_source => ['src'],
extra_compiler_flags => ['-std=c99']

然而,所做的只是将其编译为src目录中与C文件相对应的.o文件。我真正想要的是把它编译并链接成一个可执行文件,然后放在我的bin目录中。

Module::Build是否可行且可取?

虽然ikegami说这不是正确的方法(我同意这可能不是…),但我最终还是在Module::Build对象上使用了cbuilder getter来手动进行编译。只有一个C文件,我觉得这是一个小小的罪过,这让我继续前进!

my $b = $builder->cbuilder();
my $obj_file = $b->compile(
    source => 'src/myfile.c',
    extra_compiler_flags => ['-std=c99'],
    include_dirs => ['/my/path/zeromq-3.2.4/include']
);
my $lib_file = $b->link_executable(
    objects => $obj_file,
    extra_linker_flags => [
        '-lpthread',
        '-L/my/path/sw/zmq/lib/',
        '-lzmq'
    ],
    exe_file => 'my_file'
);

相关内容

  • 没有找到相关文章

最新更新