我的项目中的src
目录中有一个简单的C源文件。我的Build.PL
包含以下行:
c_source => ['src'],
extra_compiler_flags => ['-std=c99']
但是,所有这一切都是将其编译到与{C}文件对应的.o
目录中的src
文件。我真正喜欢的是将它编译和链接以形成可执行文件,然后放入我的bin
目录。
Module::Build
是否可行且可取?
答案 0 :(得分:1)
虽然ikegami说这不是正确的做事方式(我同意它可能不是......),但我最终使用了cbuilder
对象上的Module::Build
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'
);