【问题标题】:How to fix ld: warning: option -s is obsolete and being ignored [duplicate]如何修复 ld:警告:选项 -s 已过时并被忽略 [重复]
【发布时间】:2021-06-03 18:25:07
【问题描述】:

我正在制作一个 release 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++ macos makefile


【解决方案1】:

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

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

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

如果您仍想从生成的二进制文件中删除符号表,则需要使用单独的工具(例如 strip)作为构建后步骤来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多