繁体   English   中英

g++ -g 选项仅在 makefile 中不起作用

[英]g++ -g option is not working only in makefile

奇怪的是,我的 makefile 中的 -g 不起作用。 可能它使用不同的 g++ 版本?

这是我的 makefile

.default: all

all: linkedlist

clean:
    rm -f linkedlist *.o

linkedlist: main.o list.o
    g++ -Wall -Werror --std=c++14 -g -O -o $@ $^

%.0: %.cpp
    g++ -Wall -Werror --std=c++14 -g -O -c $^

这是 output:

╰ make
c++    -c -o main.o main.cpp
c++    -c -o list.o list.cpp
g++ -Wall -Werror --std=c++14 -g -O -o linkedlist main.o list.o

但它不适用于我的lldb。 但是,如果我手动生成它

g++ -Wall -Werror -g --std=c++14 -O -o linkedlist list.cpp main.cpp ,我的调试器工作,我还注意到它生成linkedlist.dSYM文件夹(与makefile它没有) . 我不确定,但我认为在上周更新我的 xcode 之前,我在使用 -g 生成二进制文件时从未见过.dSYM 文件。

知道为什么吗?

干杯

G++ 版本:

╰ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.3 (clang-1103.0.32.59)
Target: x86_64-apple-darwin19.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

你的 Makefile 有错误

%.0: %.cpp

应该

%.o: %.cpp

字母“o”,而不是数字零。

由于这个错误,您使用默认规则编译 C++ 代码,并且那些不包含-g选项,并且可能使用不同的编译器 c++ 与 Z644B1F5211D64EC52727780E74026F6E。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM