Clang и LLVM - выпуск против отладочных сборок
Это кажется простым вопросом, но чтобы выяснить это, нужно много времени...
В инструкциях по сборке LLVM+Clang упоминаются конфигурации Release и Debug. Отладочная версия для:
- Отладка самого LLVM/Clang,
ИЛИ ЖЕ
- Отлаживать приложение, которое вы пытаетесь создать с помощью Clang+LLVM?
Первоначально я предполагал первое, но затем (1) это значение по умолчанию, (2) я нашел несколько наборов инструкций, которые направляют нас к созданию режима отладки, (3) в то время как я предполагаю, что это будет интересно относительно небольшой части пользователей - большинство из них захотят использовать Clang+LLVM, а не углубляться в тонкости оптимизации дизайна компилятора.
Я планирую использовать Clang вместо GCC, чтобы воспользоваться, как я слышал, лучшими сообщениями об ошибках, но мне нужно будет отлаживать программы, которые он создает под GDB. Достаточно ли для этого релизной версии Clang?
(Обратите внимание, что версия Debug занимает несколько ГБ и, вероятно, ее сборка займет много времени, поэтому я предпочел бы найти простой способ.)
Плюс, на той же странице написано, что я должен указать ONLY_TOOLS="tools you need"
, но где список на выбор?
1 ответ
Первое верно - вам нужно только собрать LLVM и Clang в режиме отладки, если вы хотите отладить компилятор. Если вы хотите отладить созданное приложение, вам необходимо скомпилировать его с помощью символов отладки - т.е. передать -g
установите флажок Clang при сборке вашей программы - и это будет включено независимо от того, в каком режиме были созданы LLVM и Clang.
Поэтому для ваших нужд вы должны скомпилировать в режиме релиза.
Что касается вашего вопроса - почему это по умолчанию - я предполагаю, что это потому, что предполагается, что если вы хотите просто запустить его, вы просто получите предварительно собранный двоичный файл вместо загрузки и сборки исходного кода.
Кроме того, что касается последнего вопроса, в который вы проникли - я полагаю, что это относится к инструментам из этого списка инструментов LLVM.