LINUX.ORG.RU

правила размещения include


0

0

Почему порядок размещения include влияет на сборку программы (не компиляцию). Напримр, если поставить #include <sys/io.h> позже всех остальных линковщик ругаеться, что неможет найти uotb, а если раньще то все ок? В каком порядке правильно располагать чтобы не думать о таких заковырках?

Ты с -O (как написано в man) компилируешь в обоих случаях?

Murr ★★
()

Какой-нибудь из хидеров может использовать макрос, определенный в другом хидере. При компиляции если макрос не задан, то компилятор считает его функцией, которую потом линкер не может найти. В манах обычно указывается в каком порядке надо подключать заголовочные файлы.

anonymous
()
Ответ на: комментарий от anonymous

Да, конечно, -O использую. С макросами тоже понятно, но что то я не нашел именно порядка... значит метод научного тыка, спасибо.

p_igorek
() автор топика
Ответ на: комментарий от p_igorek

Приведи минимальный код, на котором это проявляется, pls...
Вряд ли заголовочные файлы настолько побиты...

Murr ★★
()

в любом случае хорошо инклудить хедеры в порядке убывания стандартности и общезначимости.

dilmah ★★★★★
()
Ответ на: комментарий от Murr

на самом деле заголовочные файлы на столько побиты, что ты представить себе не можешь! а что порядок инклудов, связанных по крайней мере с сетевыми вещами, важен - это факт. сам сталкивался. у меня сложилось впечатление, что чем больше номер дистрибутива (каксается RedHat) тем глючнее все, не ттолько инклуды

anonymous
()
Ответ на: комментарий от anonymous

Не буду спорить, просто сам с этим не сталкивался и поэтому интересно (хотя бы один примерчик)...

Murr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.