Опция g ++ -g не работает только в makefile - PullRequest
0 голосов
/ 24 апреля 2020

Странно -g в моем make-файле не работает. Возможно, он использует другую версию g ++?

Вот мой make-файл

.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 $^

Вот вывод:

╰ 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 (с make-файлом этого не происходит). Я не уверен, но думаю, что до того, как я обновил свой xcode на прошлой неделе, я никогда не видел файл .dSYM при генерации двоичных файлов с -g.

Есть идеи, почему?

Приветствия

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

1 Ответ

0 голосов
/ 24 апреля 2020

У вас есть ошибка в вашем Makefile

%.0: %.cpp

должно быть

%.o: %.cpp

Буква «о», а не ноль.

Из-за этого ошибка, что вы использовали стандартные правила для компиляции кода C ++, и они не включали параметр -g, и потенциально использовали другой компилятор, c ++ против g ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...