対処法
無視する
筆者のバージョン
Xcode: 10.1
Cocoapods: 1.6.1
概要
-pieとは、位置に依存しない実行ファイルを生成したいときにつけるコンパイルオプション
実行ファイルを生成する以外の状況で、これを指定しても無視される。
無視されたさいに-pie being ignored. It is only used when linking a main executable
という警告が出る。
Xcode上にて、通常のBuildでは発生しない。
ただし、InterfaceBuilderのPreviewのために行われるBuildのときに出る模様。(Xcodeでcmd+9を押したときに出る画面で確認できる。)1
Cocoapodsを使うと出るという情報が多いがCarthage使っていても出るし、手動でFrameworkをインストールしても出る。
- Project
- 「BuildSettings」
- 「Linking」
- 「Generate Position-Dependent Executable」
- 「Apple Clang - Code Generation」
- 「Generate Position-DependentCode」
- 「Linking」
- 「BuildSettings」
この設定値がNoになっていると思われる。
Projectを新規作成したときのデフォルト値がNoであるようだ。
Cocoapodsで生成したxcworkspaceから見えるPodsプロジェクトの設定値もNo2
試しにこれらをYESにしたら、警告は消える。
だがそれは、本来デフォルトで位置に依存しない実行ファイルを作るところを、位置に依存する実行ファイルを作るように変更することなので、いろいろ怖い。
本当は、InterfaceBuilderにおいてのみこれをYESに設定したいところだが、Xcodeにはそんな機能はない。
よって無視すべきと言う結論に達した。