簡體   English   中英

G ++編譯器:選項-s已過時且被忽略C ++

[英]G++ compiler: option -s is obsolete and being ignored C++

我正在嘗試使用g ++編譯器(Mac OSX上的4.6.0)在C ++中編譯和刪除一個非常簡單的程序。 但在編譯時我得到了一個警告。


源代碼:

#include </usr/local/Cellar/gcc/4.6.0/gcc/include/c++/4.6.0/iostream>

int main(){
    std::cout << ("Hello World\n") ;
}

終端代碼:

g++ hello.cc -Wall -std=c++0x -s
    /* or an alternative: */
g++ hello.cc -Wall -std=c++0x -o test -Wl,-s

編譯器警告:

ld: warning: option -s is obsolete and being ignored

有人對這個奇怪的警告有任何想法嗎?

編輯:

奇怪的是,使用-s標志時,大小確實減少,從9,216字節減少到9,008。

但是當我使用以下內容時,大小減少到8,896字節。

cp hello hello_stripped
strip hello_stripped

錯誤消息來自ld ,而不是來自gccg++ gccg++命令是調用編譯器,鏈接器和其他工具的驅動程序。)

gcc-s選項傳遞給鏈接器,如gcc 4.6.1手冊中所述 ; 顯然gcc的MacOS端口仍然如此。

GNU鏈接器(GNU ld )仍然接受-s選項及其通常的含義。 但是MacOS鏈接器(也稱為ld )忽略了它,如MacOS ld手冊中所述

-s完全剝離輸出,包括刪除符號表。 不再支持此文件格式變體。 此選項已過時。

與GNU的gcc手冊不同, MacOS gcc手冊沒有提到“-s”。

顯然-s標志已經過時了。 不過你可以使用strip程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM