如何告诉 clang 将调试符号放入可执行二进制文件中
How to tell clang to put debug symbol into executable binaries?
我的编译命令在macOS Sierra是
clang -std=c11 -g -Wall -Werror -fsanitize=address -file.c -o file
编译后,它还会生成一个额外的 file.dSYM 文件,其中包含所有调试符号。但是,当我使用 WSL 或其他 *nix 系统时,它不会生成这样的文件,调试符号被嵌入到可执行二进制文件中。所以我只是想知道有没有办法在 macOS 中使用 clang 做同样的事情。
当您一次性编译程序时,clang
实际上为您运行dsymutil
,它负责创建.dSYM
文件。因此,问题的解决方案是分别编译和链接,在这种情况下,clang
不会自动调用dsymutil
。
查看此SO问题以获取更多详细信息!
相关文章:
- -bash:/a.out:无法执行二进制文件:Exec格式错误
- 我有一个预处理的 C/C++ 源文件 (cacti.i).如何从这个 .i 文件生成可执行二进制文件,以便我可以像 ./
- 应使用 CMake install 命令将可执行资源文件安装到何处?
- 为什么当我们想要运行可执行的 c++ 文件时,我们需要在可执行的 c++ 文件前面"./"?
- 如何告诉 clang 将调试符号放入可执行二进制文件中
- Docker Centos,无法执行二进制文件
- bash:./main:无法执行二进制文件:Exec格式错误
- Windows和linux中使用的可执行二进制格式的低级解释
- 无法使用字符串中的命令使用 execlp() 执行二进制文件
- 从没有外壳的C++执行二进制文件
- 从 Web UI 访问C++编译的可执行二进制文件
- bash:即使二进制和Linux是64位的,也无法执行二进制文件:Exec格式错误
- AWS:无法执行二进制文件
- 从内存执行二进制文件
- PHP - 无法执行 c++ 二进制文件?
- 使C可执行/设置文件在任何计算机上运行
- 不是可执行格式:文件格式无法识别 GDB
- 如何制作不依赖于 .so 文件的可执行二进制文件
- 使用apache thrift通过exec执行二进制文件
- 可执行测试文件没有运行测试