clang++ 14不生成PDB文件

Scr*_*mer 1 windows llvm clang pdb-files

我的目标

我想使用 clang++ 14.0.6 和 mingw ucrt (类似 GCC)而不是clang-cl / clang-cpp 生成应用程序的 PDB 文件。

我的问题

未生成 PDB 文件。

我尝试过的

clang++ -march=native -O3 -g -gcodeview main.cpp -o filecomp.exe
Run Code Online (Sandbox Code Playgroud)

我在 --help、clang github issues 和现有的 SO 问题中查找信息,但到目前为止没有找到任何答案。
大多数人谈论旧版本的 Clang 解决方案对我不起作用,或者 Clang-cl 甚至 Visual Studio 捆绑的 clang-cl 与我的情况无关。

Hol*_*Cat 5

在编译时使用-g -gcodeview,然后-fuse-ld=lld -g -Wl,--pdb=在链接时使用。这会??.pdb同时产生??.exe.

您还可以将自定义 PDB 文件路径传递到-Wl,--pdb=??.

我不确定-g链接时是否会执行任何操作,但 Clang 不会对此发出警告,因此我更愿意保留它。如果在链接时指定,它会警告-gcodeview未使用。

  • `clang++ main.obj -o main.exe -fuse-ld=lld -g -Wl,--pdb=` 进行链接。`clang++ main.cpp -o main.exe -g -gcodeview -fuse-ld=lld -Wl,--pdb=` 一次性编译和链接。仅供参考,在 mingw 生态系统中,习惯的目标文件扩展名是“.o”,而不是“.obj”。*“你在哪里找到 Wl 信息”* Google 引导我[这里](https://github.com/mstorsjo/llvm-mingw/blob/master/README.md#pdb-support)。我能说什么,我的 google-fu 比你的好。:P (2认同)