私はBoost::Process
(1.64.0) をいじり、GCC 7.1.1 を使用してvfork()
、プロセスをフォークするときに の使用を強制しようとしています。次のプログラムのリンカー エラーが表示されます。
#include <boost/process.hpp>
namespace bp = ::boost::process;
int main(void)
{
bp::child c("ls", bp::posix::use_vfork);
c.wait();
return 0;
}
使用:
g++ use_vfork.cpp
生成されるリンカ エラーは次のとおりです。
関数 'boost::process::detail::posix::executor >、boost::fusion::filter_view&、boost::process::detail::posix::use_vfork_ const&> const、boost::process::detail 内::is_initializer > > > >::operator()()': spawn_simple.cpp:(.text._ZN5boost7process6detail5posix8executorINS_6fusion10joint_viewINS4_5tupleIJNS2_12exe_cmd_initIcEEEEENS4_11filter_viewIKNS6_IJRA6_KcRNS2_8null_outILi1ELin1EEERKNS2_10use_vfork_EEEENS1_14is_initializerIN4mpl_3argILin1EEEEEEEEEEclEv[_ZN5boost7process6detail5posix8executorINS_6fusion10joint_viewINS4_5tupleIJNS2_12exe_cmd_initIcEEEEENS4_11filter_viewIKNS6_IJRA6_KcRNS2_8null_outILi1ELin1EEERKNS2_10use_vfork_EEEENS1_14is_initializerIN4mpl_3argILin1EEEEEEEEEEclEv]+0x31): undefined reference to `boost::process::detail::posix::executor > 、boost::fusion::filter_view&、boost::process::detail::posix::use_vfork_ const&> const, boost::process::detail::is_initializer > > > >::invoke(mpl_::bool_, mpl_::bool_)'
私の知る限り、Boost Process 自体はヘッダーのみなので、未定義の参照について不平を言っているのはなぜboost::process<...>::invoke()
ですか?
と を追加-lboost_system
してみまし-lboost_iostreams
たが、リンカー エラーは解決しません。