我正在使用RHEL7上的gcc編譯器4.8.5編譯遺留代碼。所有C和C++文件都有「-unsigned」作爲gcc和g ++編譯的默認標誌之一。編譯器接受該選項併成功編譯。但是,我無法在gcc手冊或在線任何地方找到此選項的任何文檔。有誰知道這個選項是什麼?我必須移植代碼,並且很困惑這個編譯器選項是否需要移植。gcc編譯器選項「-unsigned」是什麼意思?
回答
我懷疑這只是Makefile中的一個錯誤,或者是用來編譯代碼的錯誤。
gcc不支持-unsigned
選項。然而,它確實將選項傳遞給鏈接器和GNU ld有-u
選項:
「-u符號」
「--undefined =符號」輸出文件被輸入
部隊符號作爲未定義的 符號。例如,這可能會觸發從標準庫鏈接額外的 模塊。可以用 不同的選項參數重複'-u'以輸入其他未定義的符號。 該選項等同於'EXTERN'鏈接描述文件命令。
-u
與符號名稱之間的間隔是可選的。
所以意圖可能是用無符號類型做一些事情,但至少在現代版本的gcc中,效果是在輸出文件中輸入nsigned
作爲未定義的符號。
這似乎對我做的快速測試沒有影響(編譯並運行一個小的「hello,world」程序)。該程序運行正常,並nm hello
輸出包括:
U nsigned
使用舊版本不同的系統上的gcc(2.95.2)的,我得到未定義的符號致命的鏈接時錯誤。
大聲笑............ :) –
你有一個工作gcc 2.95躺在? 0。o很好找! :) –
@BaummitAugen:在運行Solaris 9的SPARC上。(不是我的,只是我可以訪問的一個系統。) –
我懷疑這個程序是用-funsigned-char
編譯的。我不知道在恐龍時代這是否是-unsigned
,也許海灣合作委員會實際上仍然注意到拼寫;沒有辦法從手冊中知道,因爲如果是這樣,這是一個無證的功能。
我會在這裏問原作者的意圖,因爲他們認爲不適合文檔。
顯然不是,或者至少不會像那樣工作。 http://melpon.org/wandbox/permlink/XXTmWrJ6ggmQa01h vs http://melpon.org/wandbox/permlink/S8E1jAFnmDOb4ssR –
@BaummitAugen:另外,下面的'0'是什麼? O.O –
我相信gcc的返回值。編譯失敗時爲'1'。 –
- 1. 這個編譯器消息(矢量化,GCC)是什麼意思?
- 2. '構建gcc交叉編譯器'是什麼意思?
- 3. gcc -E是什麼意思?
- 4. 當編譯gcc/g ++/libstdC++時,--enable-threads = LIB是什麼意思?
- 5. (unsigned char *)&niz [10]是什麼意思?
- 6. 這是什麼意思Bootstrap被編譯?
- 7. 編譯時間'const'是什麼意思?
- 8. 模擬Microsoft C編譯器行爲的GCC選項是什麼?
- 9. 這是什麼gcc編譯器選項? (-lGL -lGLU -llglut)
- 10. '*(unsigned int *)((unsigned int)block + n * i)是什麼意思'
- 11. 什麼是'unsigned'意思是什麼時候它本身?
- 12. 這個gcc命令是什麼意思?
- 13. GCC,什麼-W1的意思是
- 14. gcc的這些行是什麼意思?
- 15. CEmailValidator的allowName選項是什麼意思?
- 16. ndb.EVENTUAL_CONSISTENCY選項是什麼意思?
- 17. 這些選項都是什麼意思?
- 18. 「選項FollowSymLinks」 - 這是什麼意思?
- 19. 反撥選項是什麼意思?
- 20. 這個編譯器生成的枚舉器是什麼意思?
- 21. AIX的XL編譯器的-qfuncsect選項的gcc等效選項是什麼?
- 22. 是什麼意思:是什麼意思?
- 23. 這個編譯器構建語句是什麼意思?
- 24. `-pedantic`生成的編譯器警告是什麼意思?
- 25. 「特殊編譯器魔法」是什麼意思?
- 26. 編譯器優化「常量傳播」是什麼意思?
- 27. 「頭部不匹配」編譯器錯誤是什麼意思?
- 28. 這是什麼意思:編譯器錯誤信息:BC30451
- 29. 這個C編譯器錯誤是什麼意思?
- 30. = +是什麼意思?它爲什麼編譯?
當你說遺產,遺產有多大?如果您知道它最初編寫的是什麼編譯器,我們可以開始在舊手冊中平分。請注意,我能找到的最早的GCC版本是2.95.3,而且它也沒有'-unsigned'。 –
據我所知,GCC允許使用[spec文件](https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html)添加命令行參數。您可以嘗試查看他們是否使用自定義規格文件 –