Как написать Makefiles, чтобы получить относительный путь в отладочных символах? - PullRequest
1 голос
/ 19 декабря 2011

У меня есть такая структура кода:

project_dir/
    source1.c
    subdir/
        source2.c

Makefile вызывает subdir/Makefile, поэтому файл subdir/source2.c компилируется следующим образом:

gcc -g -someoptions source2.c

и символы в GDB ссылаются на source2.c вместо subdir/source2.c (в результате GDB не может найти символы в исходных файлах).Как мне написать Makefile или какие опции использовать в gcc для получения символов, используя относительный путь к главному каталогу проекта (или, в конечном итоге, абсолютный путь)?

Я не могу использовать:

cd .. && gcc -g -someoptions ../subdir/source2.c

потому что мне нужно изменить ссылки на заголовочные файлы во всех файлах в subdir.

1 Ответ

0 голосов
/ 19 декабря 2011

Ваш вопрос зависит от платформы (например, в Linux GDB должен работать (TM), поэтому я предполагаю, что вы не в Linux).

Один из вариантов - построить так:

gcc -g ${PWD}/source2.c -o ...

Другой вариант - использовать команду GDB dir для добавления ${TOP}/project_dir/subdir в список каталогов, в которых GDB будет искать источники.

...