Я пытаюсь заставить ValGrind рассказать мне, что случилось с моей программой. Каждый фрагмент документации на лицевой стороне Интернета говорит о том, что вы должны предоставить -g
вариант GCC, но ни один документ не говорит, нужен ли вам этот флаг в времени компиляции или link-time (или оба). Так что это?Когда использовать флаг -g для GCC
ответ
В документации GNU ld указано, что -g
будет игнорироваться, поэтому передать его не имеет смысла. В общем, вы передаете -g
в gcc
(что действительно является интерфейсом для всего процесса компиляции, а не только для компилятора), и он позаботится об этом.
Чтобы быть на 100% понятным: вы говорите, что '-g' требуется в _compile-time_ и не требуется в _link-time_? – MathematicalOrchid
@MathematicsOrchid Да, см. 'Man ld', если у вас есть какие-то сомнения. Он сказал бы вам, что '-g' предоставляется для _ совместимости с другими инструментами. – devnull
@MathematicsOrchid Да, это так. – pmr
GCC обеспечивает флаг -g, чтобы получить отладки, поэтому один компиляции программы как Рассмотрим код example.c как:
#include <stdio.h>
/* Warning: This program is wrong on purpose. */
int main()
{
int age = 10;
int height;
printf("I am %d years old.\n");
printf("I am %d inches tall.\n", height);
return 0;
}
По умолчанию, если вы собираете сказать, используя make example
Это вызовет команда
cc example.c -o example
Теперь вы запускаете команду как
cc -g example.c -o example1
, то вы найдете size of the file example1
больше, чем size of example
, потому что флаг -g активировал отладочную информацию.
При работе valgrind -g флаг не требуется. -g требуется только в процессе компиляции.
- 1. Когда использовать -O2 флаг для gcc?
- 2. Является ли флаг gcc -g отладки влиять на выполнение программы?
- 3. #ifdef флаг, чтобы рассказать разницу между gcc и g ++ компиляторами?
- 4. Когда нам нужно использовать gcc/g ++ для создания файлов карт? «-g» достаточно для отладки?
- 5. g ++ флаг только для проверки синтаксиса?
- 6. gcc флаг для принудительного использования предопределенных макросов
- 7. gcc -O4 флаг оптимизации
- 8. gcc/g ++ альтернатива для определения
- 9. Флаг для gcc отключить буферизацию stdout?
- 10. LD_PRELOAD компилировать .so использовать gcc или g ++
- 11. правильный флаг для передачи директории в g ++ для включения файлов
- 12. Easy Makefiles для GCC/G ++
- 13. Отменить предыдущий -D [efine] флаг для GCC
- 14. g ++ флаг компилятора для минимизации двоичного размера
- 15. Требуется ли для дампа ядра использовать -g для gcc?
- 16. gcc/g ++ output type
- 17. g ++ - использует флаг «-g» для сборки, создает хорошую идею?
- 18. Что делает флаг g ++ -D?
- 19. Ruby не распознает флаг g для regex
- 20. Флаг SDL_HWPALETTE не распознан gcc
- 21. векторная графика: gcc-флаг оптимизации
- 22. GNU gcc и g ++
- 23. Миграция g ++ в gcc
- 24. Как загружается gcc/g ++?
- 25. gcc флаг для определения конкатенации строк литерала?
- 26. эквивалент pgcc "-Minfo =" флаг для gcc-компилятора?
- 27. Почему vim не сохраняет флаг [c], когда g & используется?
- 28. эквивалентные gcc-флаги для g ++ call
- 29. GCC: используя флаг оптимизации -O3 с компоновщиком
- 30. Любой флаг отладки в g ++ для проверки индекса массива
'-g' - это опция компилятора, а не вариант компоновщика. – Jarod42