clang错误中的完整代码路径

时间:2015-07-09 17:32:55

标签: c++ c clang

我正在寻找cl命令/ FC的clang等价物。我需要构建工具的完整路径来解析并打开带有错误的代码文件。

https://msdn.microsoft.com/en-us/library/027c4t2s.aspx

2 个答案:

答案 0 :(得分:0)

您需要在命令行上指定文件的完全限定或相对路径,而不是仅传入文件名。在下面的例子中,调试器不知道在哪里找到" blah.cc"因为我只通过指定文件名编译:

~ pwd
/mnt/scratch/myproject/src
~ clang++ blah.cc -c -o /mnt/scratch/myproject/build/blah.o
~ cd ../build
~ clang++ *.o -o myprogram

...但是,如果相反我做了这个:

~ pwd
/mnt/scratch/myproject
~ clang++ /mnt/scratch/myproject/src/blah.cc -c -o /mnt/scratch/myproject/build/blah.o
# or:
~ clang++ src/blah.cc -c -o build/blah.o
# ...

...然后它将完全限定或相对路径嵌入调试部分。

如果您使用部分限定路径,则必须告诉GDB在哪里查找代码。您可以查看它的文档here,尽管两个gdb命令可能会有所帮助:

# This will cause gdb to look in "path2" instead of "path1"
(gdb) set substitute-path path1 path2
# This allows you to give a list of directories to search for your source.
# note that if you give relative paths on the command-line, it'll concatenate
# these paths and the relative path used at compile-time.
(gdb) set directories path [path ...]

答案 1 :(得分:0)

CFLAGS + = -fdiagnostics-absolute-paths