Opened 5 years ago
Closed 5 years ago
#21 closed ожидается проверка (задача сдана)
WW #1
Reported by: | sukhodolskiy.maksim | Owned by: | Sokolov Viacheslav |
---|---|---|---|
Component: | WW_make | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (4)
comment:1 Changed 5 years ago by
comment:2 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:3 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
Плохой текстовый редактор при нажатии таба вставлял 4 пробела, редактор сменил, файлы исправил.
comment:4 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
C unresolved результат ожидаемый.
С multiple definition результат показательный, но не тот, который нужен был. Сейчас ошибка на этапе компиляции:
src/util.c:4:5: error: redefinition of ‘max’
. В процессе компиляции функцииmax
выяснилось, что она нарушает One Definition Rule, а именно, в одной и той же единице компиляции есть две реализации одной и той же функции (на самом деле компилятор считает, что One Definition Rule не может быть нарушен и потому встретив второй раз функциюmax
воспринимает ее не как повторную реализацию, а как новую функцию с таким же именем, на что и выдает ошибку). В задании же нужно получить ошибку на этапе компоновки. То есть во время выполнения цели Makefile lab1.Стоит разбить компиляцию и компоновку для main: сделать цель по сборке bin/main.o и для цели lab1 оставить только лишь компоновку.
Можно вынести флаги компиляции в переменную, чтобы было удобно их синхронно модифицировать.
Стоит добавить цели all, clean в секцию .PHONY:
Также стоит обратить внимание на codestyle: использовать один стиль на весь проект. Либо пробелы, либо табуляции. Субъективно: пробелы лучше тем, что везде одинаково отображаются. Неплохо бы поставить пробел после if. Я бы рекомендовал все scope-ы окружать с помощью фигурных скобок (включая if SCOPE else SCOPE), это уменьшает сложность чтения и модификации кода.