首页 > 解决方案 > 如何修复 ld:警告:选项 -s 已过时并被忽略

问题描述

我正在制作一个发布 mod makefile 但有一个错误(我在 macos big sur 上):ld:警告:选项 -s 已过时并被忽略

g++ -c src/*.cpp -std=c++17 -m64 -O3 -Wall -I include && g++ *.o -o bin/debug/Debug -s && ./bin/debug/Debug

标签: c++macosmakefile

解决方案


正如警告所告诉您的-s,您的makefile正在传递给g ++的选项:

... && g++ *.o -o bin/debug/Debug -s && ...
                            here: ^^

不再做任何事情。因此,您只需将其从脚本中删除,警告就会消失。警告来自ld因为g++将编译过程的一部分委托给它。

如果您仍想从生成的二进制文件中删除符号表,则需要使用单独的工具(例如strip.


推荐阅读