RHEL7でgccコンパイラ4.8.5を使用してレガシーコードをコンパイルしています。すべてのCおよびC++ファイルには、gccおよびg ++コンパイルのデフォルトフラグの1つとして「-unsigned」があります。コンパイラはこのオプションを受け入れ、正常にコンパイルします。しかし、私はgccのマニュアルやオンラインのどこでもこのオプションのドキュメントを見つけることができません。誰でもこのオプションが何であるか知っていますか?私はコードを移植する必要があり、このコンパイラオプションを移植する必要があるかどうか混乱しています。gccコンパイラのオプション "-unsigned"とは何ですか?
答えて
私はそれがMakefileやコードをコンパイルするのに使われている間違いであったと思っています。
gccは-unsigned
オプションをサポートしていません。しかし、それはリンカにオプションを渡す行い、およびGNU ldは-u
オプションがあります:
'を-u SYMBOL'
は '--undefined = SYMBOL'
フォースSYMBOLとして出力ファイルに入力します定義されていない シンボル。これを行うと、たとえば、標準のライブラリから追加の モジュールをリンクすることができます。追加の未定義シンボルを入力するには、異なるオプション引数を使用して '-u'が繰り返されることがあります( )。 このオプションは 'EXTERN'リンカースクリプトコマンドに相当します。
シンボル名は-u
の間のスペースは省略可能です。
したがって、符号なしの型で何かを行う意図があったかもしれませんが、少なくとも現代版のgccの場合は、出力ファイルに定義されていないシンボルとしてnsigned
を入力する必要があります。
これは私がやったクイックテスト(小さな "hello、world"プログラムのコンパイルと実行)では効果がないようです。プログラムが正しく実行され、nm hello
の出力が含まれています:異なるシステム上のgcc(2.95.2)の古いバージョンで
U nsigned
、私は未定義のシンボルに関する致命的なリンク時エラーが発生します。
笑............ :) –
gcc 2.95が正常に動作していますか? 0。oニースが見つかりました! :) –
@BaummitAugen:Solaris 9.を実行しているSPARC(私のものではなく、私がアクセスできるシステム)。 –
私は、プログラムが-funsigned-char
でコンパイルされていると考えています。私はこれが代わりに-unsigned
であったかどうか、おそらく恐竜の時代に戻ったのかどうか、そしておそらくGCCは実際には依然としてそのスペルに留意しているのかどうかわかりません。このマニュアルから知る方法はありません。なぜなら、それが文書化されていれば、文書化されていない機能なのです。
私は元の著者にここに意図を尋ねるでしょう、なぜなら彼らは文書化には合っていないからです。
明らかにそうではない、または少なくともそれ以上は機能しません。 http://melpon.org/wandbox/permlink/XXTmWrJ6ggmQa01h vs http://melpon.org/wandbox/permlink/S8E1jAFnmDOb4ssR –
@BaummitAugen:脇の下として、下位の「0」は何ですか? o.O –
gccの戻り値私は信じています。コンパイルが失敗すると '1 'になります。 –
- 1. gccのffreestandingオプションとは何ですか?
- 2. gcc -marchオプションのデフォルトは何ですか?
- 3. AIXのXLコンパイラの-qfuncsectオプションに対するgccの同等のオプションは何ですか?
- 4. Cでは 'long unsigned'は 'unsigned long'と有効ですか?
- 5. gccはテーブルベースのコンパイラですか?
- 6. GCCエラーのconst unsigned long型
- 7. gccの-pthreadおよび-rdynamicオプションのポイントは何ですか?
- 8. "tree - ***"ファミリーのGCC最適化オプションの目的は何ですか?
- 9. gccコマンドで-fsyntax-onlyオプションを使用するとは何ですか?
- 10. GCCの '__IO'ディレクティブとは何ですか?
- 11. GCCの「vstring」とは何ですか?
- 12. unsigned short intの書式指定子とは何ですか?
- 13. これらのgccオプションは何をしていますか?
- 14. GCCコンパイラのオプション-wno-four-char-constantsおよび-wno-multichar
- 15. "gcc -lname"と "gcc libname.so ..."の違いは何ですか?
- 16. gcc '-c'とgcc '-o'の意味は何ですか?
- 17. 'gcc -g'と 'gcc -g3'の違いは何ですか?
- 18. GCCコンパイラの問題
- 19. gcc -Eとは何ですか?
- 20. gccコンパイラが-fno-pltオプションを認識しない
- 21. -m32と-m64の違いは何ですか?gccのオプションには何もありません。
- 22. ストレージクラスのデフォルトグローバル変数(gccコンパイラ)?
- 23. unsigned shortとUSHORTの違いは何ですか?
- 24. c(Netbeansコンパイラとgcc)のsqrt()メソッド
- 25. GNU GCCコンパイラの最適化とデバッグ
- 26. オプションとは何ですか?typescriptの[x:string]は何ですか?
- 27. Eclipseコンパイラの設定に対応するant javacオプションは何ですか?
- 28. gcc cコンパイラのcswtch生成
- 29. pccライブラリでgccコンパイラで使用する
- 30. ブラックリスト機能のgcc(4.8.3)サニタイザーのオプション
レガシーと言えば、どのようにレガシーですか?もともとどのコンパイラが書かれていたのか分かっていれば、古いマニュアルでバイセクトを開始することもできます。最初のGCCのバージョンは2.95.3であり、 '-unsigned'もありません。 –
私が知っている限り、GCCでは[spec files](https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html)を使ってコマンドラインパラメータを追加することができます。彼らはカスタム仕様ファイルを使用しているかどうか試してみることができます –