質問: 実験コードを載せます。 ``` #include int main(){ printf("you will make me happy\n"); return 0; } ``` **gcc source.c -o source**とやるとデフォルトで位置独立形式になる環境があるようです。 ubuntu16.10でemacsをビルドしたい **これを非位置独立形式にしたいです。** gcc fno-pie gcc source.c -fno-PIE -c gcc source.o -fno-pie -o source とやっても、 ``` /usr/bin/ld: test_hello.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object。 -fPIC を付けて再コンパイルしてください。 /usr/bin/ld: 最終リンクに失敗しました: 出力に対応するセクションがありません collect2: error: ld returned 1 exit status ``` と出現します。 **他に方法はありませんか??** 教えてください。 Linux 64bit debian系 gcc です。
回答: `-no-pie`で、いいんじゃないでしょうか。