FreeBSD или как победить gcc?

Тема в разделе "WASM.UNIX", создана пользователем Black_mirror, 14 ноя 2004.

  1. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Есть консольная программа которая работает с сетью. Программа была написана под виндой, а теперь возникла необходимость перенести её во FreeBSD 4.6. Естественно что при компиляции gcc выдаёт целую кучу ошибок, большинство из которых вызванны скорее всего тем, что не подключены нужные заголовочные файлы. Все ошибки на экран не помещаются, поэтому вознкает вопрос: Как увидеть самую первую ошибку? Трюки типа gcc main.c | more или gcc main.c > err.log не работают. Можно ли как-то перенаправить то, что gcc пишет в stderr в файл или указать ему, чтобы останавливался при обнаружении первых N ошибок?
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    В глаза не видел gcc, но если консольный вывод не работает в файл, то возможно из-за использования WriteConsole, лечится простой правкой в секции импорта WriteConsole на WriteFile

    з.ы. тьфу это под виндой так, фрю я тоже в глаза не видел :)
     
  3. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    bogrus

    Я имел ввиду gcc который во FreeBSD. Из тех ошибок, что поместились на экран, большинство типа не определена структура или переменная, причем структуры и переменные мои. Понятное дело что ошибки скорее всего наведённые, но вот какая ошибка их вызвала?
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Black_mirror



    А если так:
    Код (Text):
    1. gcc main.c >err.log 2>&1
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Может нужно написать >>

    или почему нельзя использовать портированную версию под винду, а в cmd.exe работает скролинг окна..
     
  6. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Подсказка: stderr - это поток номер 2.

    (потоки 0 и 1 - это stdin и stdout)



    О том, что это действительно поток номер 2, и о том, как перенаправить поток с заданным номером, можно узнать в документации по шеллу. Простой пример этого привёл Quantum
     
  7. evgen

    evgen New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2004
    Сообщения:
    1
    наскока я помню, там нужно жать кнопку scroll lock и

    можно просматривать вверх
     
  8. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Всем спасибо, я уже исправил все ошибки начиная с конца ;) Но все предложенные варианты испытаю.

    Не знаю я оказывается Си - struct при объявлении переменных не написал.
     
  9. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    > struct при объявлении переменных не написал.



    Эээ, а под бздюхой это типа прокатывало???
     
  10. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Dr.Golova

    Прокатывало в VC, а gcc без struct не ест ;)
     
  11. Shift

    Shift New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2003
    Сообщения:
    3
    Адрес:
    Санкт-Петербург. Россия
    [offtop mode on]

    для тех, кто в танке - wlan дрова стало намного проще портировать - разработчики тужились-тужились и портанули NDIS -> man ndis

    [offtop mode off]
     
  12. greeen

    greeen New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2006
    Сообщения:
    8
    Адрес:
    Russia
    хмм, man script
     
  13. Sharp

    Sharp New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    143
    Адрес:
    Ukraine
    а в cmd.exe работает скролинг окна..

    В KDEшном фронтенде Konsole тоже есть скроллинг
     
  14. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898


    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 ошибок умрёт самостоятельно.