

インテルのNUC上で開発したC++のプログラムをマウスコンピューターに移植しました。  
ビルドはうまくいったのに、実行時にエラーになりました。  
そのときのエラーメッセージは次の通りです。

> boost::math::detail::erf_inv_initializer boost::math::policies::policy,  
>  boost::math::policies::promote_double,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy> >::init::do_init()  
>  0x00007f09690de025_GLOBAL__sub_I_sac.cpp 0x00007f096905f1d9  
>  0x00007f09745104ea 0x00007f09745105fb  
>  0x00007f0974500cfa 0x0000000000000008  
>  0x00007ffdf89831c7 0x00007ffdf8983213  
>  0x00007ffdf898321a 0x00007ffdf8983227  
>  0x00007ffdf8983231 0x00007ffdf8983248  
>  0x00007ffdf8983253 0x00007ffdf898326b  
>  0x0000000000000000

エラーメッセージを見る限り、boostのmathライブラリからの問題のようです。  
同じOSの環境なのに、こんなことってあるんでしょうか。  
あるとしたらどうすればよろしいでしょうか。

追加情報です。  
次のエラーも見つかりました。

> policies::promote_float,  
>  boost::math::policies::promote_double,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy,  
>  boost::math::policies::default_policy> >::init::do_init() () from  
>  /usr/local/lib/libpcl_sample_consensus.so.1.8

これを見る限り、倍精度がつかえないということでしょうか。

同じソースコードを別のコンピュータに持って来て再ビルドしました。  
環境はubuntu:16.04,boost:105800,CXX:GNU5.4.0です。そのほかとしては、NUCは4コア、マウスコンピュータは2コアです。

マウスコンピュータの方、インタラクティブに実行すると、必ず「Process finished with exit code 132 (interrupted
by signal 4: SIGILL)」（不正な命令）で終了します。恐らく、ライブラリが合わないのか、スペックが足りないのでしょうか。

ちなみに、マウスコンピュータのcpuは、Celeron Dual-Core 3865U(Kaby
Lake)です。-mtuneコンパイルオプションで設定するには、どのように入力したらよろしいでしょうか。

コンパイルオプションとして、「-march=native」としてもダメでした。

よろしくお願いします。


CC BY-SA 4.0
2018-07-23T01:21:53.127
46851
2020-05-02T12:13:48.733
2020-05-02T12:13:48.733
32986
29110
question
c++ ubuntu boost
同じubuntuなのに実行エラー