2016-08-29 1 views
0

-fpicフラグは何をしますか? ライブラリ(OpenSFM)をインストールしたいのですが、-fPICコンパイルフラグを使ってCeresソルバーをビルドしてインストールする必要があります。-fPICコンパイルフラグは何をしますか?

問題は、すでにCeresソルバーを-fPICフラグなしでインストールしていることです。他のライブラリはすでにそれに依存しています。これをどうすれば解決できますか?

+0

-fPICは共有ライブラリの位置独立コードを作成します。共有ライブラリの代わりに静的リンケージを使用することです –

+0

これはCMakeとは関係ありません。 '-fPIC'はCMakeフラグではなく、コンパイラのフラグです。 –

答えて

1

-fPICについての良い説明はhereです。

ここでの主な質問は、Ceres Solverを再構築せずにOpenSfMをインストールできるかどうかということです。私が知る限り、あなたはできません。

あなたができる最も簡単なことは、Ceresソルバーを再構築し、PICバージョンを再インストールすることです。

cmake .. -DCMAKE_C_FLAGS=fPIC \ 
    -DCMAKE_CXX_FLAGS=-fPIC \ 
    -DSOMEOTHERARGUMENTSTHATYOUMIGHTHAVE 

私たちはあなたのためにどのように働いたか教えてください。 :)

+0

Ceresソルバーをアンインストールしてから再インストールすると、それに依存する他のライブラリ(この場合はOpenCVです)に影響しますか? – Hilman

+0

-fPICでコンパイルされたライブラリは、互換性があります。 – bot1131357

関連する問題