我使用clang 703.0.31编译了一个基准测试。首先使用-c -flto -O3 -g(和其他一些标志)将所有源文件编译成目标文件,然后使用相同的clang(使用Apple LLVM 7.3.0,使用ld)将它们链接到一个可执行文件中,使用-g -flto。
当我尝试对可执行文件进行分析时,可以看到函数名称和反汇编,但是它们与源代码之间没有对应关系。
对该exe运行dsymutil会产生以下结果:
警告:(x86_x64)/tmp/lto.o无法打开对象文件:没有那个文件或目录
警告:可执行文件中没有调试符号(-arch x86_64)
有什么想法吗?(注意:我通常在Windows上工作,对OS X的了解接近于0)
-O3
优化后完成了。 - Bryan Chen