Intereting Posts
Почему extern int a; инициализация дает ошибку локально, но не глобально? Является ли законным реализовать наследование в C посредством указателей каста между одной структурой, которая является подмножеством другого, а не первого члена? Получение собственного внешнего IP-адреса в POSIX C pthread_cancel не работают под солнечными лучами не может читать png-файл с помощью libpng Элементы массива, переписанные последним элементом Проверка буфера stdin, если он пуст Проблемы с C scanf () и fgets () C multidimensional array строк Почему компилятор бросает это предупреждение: «Отсутствует инициализатор»? Не инициализирована ли структура? Как описать const указатель на массив в C / C ++? Использование разумной разницы между const & volatile qualifier в C? Регистр UART не отлаживается на терминале Когда требуется сокращение? Ubuntu рекурсивно перечисляет файлы, обнаруживая sym-ссылки

.dSYM-файлы, созданные из командной строки (Mac)

Я только начал кодировать в C и запускал чужой Makefile с установленным по умолчанию компилятором C в gcc. Я нахожусь на Mac OSX 10.8 Mountain Lion, и я считаю, что я установил компилятор с помощью «Инструментов командной строки XCode». После запуска «make» в командной строке я получаю эти раздражающие файлы .dSYM для каждой программы. Я читал, что это файлы отладки, но действительно ли они нужны? Есть ли способ предотвратить их создание из командной строки?

Да, файлы dSYM необходимы. В частности, они содержат таблицы символов, которые включены в сборки отладки Xcode; релиз сборки помещают символы в этот отдельный файл. Если вам понадобится проанализировать трассировку стека из сборки релиза, вам это понадобится. И убедитесь, что вы не потеряете файлы, потому что повторите сборку, даже если источник абсолютно одинаковый, не будет создавать полезный файл dSYM. Каждой сборке присваивается UUID и изменяется с каждой сборкой, даже если источник не изменился. (Я предполагаю, что это включает временную метку или даже случайное число.)

Если вы выбросите файлы dSYM, то, если вы вдруг обнаружите, что ваше приложение сильно разрушилось, вы можете пожалеть.

Флаг -g для GCC будет генерировать символы отладки. Вы можете просто удалить этот флаг из CFLAGS .

Они необходимы только в том случае, если вам нужно интерпретировать местоположения в трассировке стека в отчете о сбое.