Есть консольная программа которая работает с сетью. Программа была написана под виндой, а теперь возникла необходимость перенести её во FreeBSD 4.6. Естественно что при компиляции gcc выдаёт целую кучу ошибок, большинство из которых вызванны скорее всего тем, что не подключены нужные заголовочные файлы. Все ошибки на экран не помещаются, поэтому вознкает вопрос: Как увидеть самую первую ошибку? Трюки типа gcc main.c | more или gcc main.c > err.log не работают. Можно ли как-то перенаправить то, что gcc пишет в stderr в файл или указать ему, чтобы останавливался при обнаружении первых N ошибок?
В глаза не видел gcc, но если консольный вывод не работает в файл, то возможно из-за использования WriteConsole, лечится простой правкой в секции импорта WriteConsole на WriteFile з.ы. тьфу это под виндой так, фрю я тоже в глаза не видел
bogrus Я имел ввиду gcc который во FreeBSD. Из тех ошибок, что поместились на экран, большинство типа не определена структура или переменная, причем структуры и переменные мои. Понятное дело что ошибки скорее всего наведённые, но вот какая ошибка их вызвала?
Может нужно написать >> или почему нельзя использовать портированную версию под винду, а в cmd.exe работает скролинг окна..
Подсказка: stderr - это поток номер 2. (потоки 0 и 1 - это stdin и stdout) О том, что это действительно поток номер 2, и о том, как перенаправить поток с заданным номером, можно узнать в документации по шеллу. Простой пример этого привёл Quantum
Всем спасибо, я уже исправил все ошибки начиная с конца Но все предложенные варианты испытаю. Не знаю я оказывается Си - struct при объявлении переменных не написал.
[offtop mode on] для тех, кто в танке - wlan дрова стало намного проще портировать - разработчики тужились-тужились и портанули NDIS -> man ndis [offtop mode off]
gcc main.c 2>&1 | more хотя я предпочитаю в качестве pager'а использовать less. есть ысчо вариант: воспользоваться emacs'ом или vi. напр. для emacs: $ cd dir-where-main <RET> $ emacs <RET> [f10] t c gcc main.c <RET> ну дык программа-то на c++ написана... компилируй не gcc main.c, а g++ main.c и процентов эдак 90 ошибок умрёт самостоятельно.