[英]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
,而不是來自gcc
或g++
。 ( gcc
和g++
命令是調用編譯器,鏈接器和其他工具的驅動程序。)
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.