Помогите с tcc, всю жизнь на асме писал.

Тема в разделе "LANGS.C", создана пользователем dr_godsl, 23 фев 2011.

  1. dr_godsl

    dr_godsl New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2009
    Сообщения:
    60
    Собственно сабж, есть компилятор с языка "с" TinyCC. Неполучается скомпилить элементарную вещь. Вот:
    Код (Text):
    1. #include <windows.h>
    2.  
    3. int main(int argc, char **argv)
    4. {
    5.     MessageBoxA(0, "opa!", "brr", MB_ICONINFORMATION);
    6. }
    Компилю так
    Код (Text):
    1. tcc.exe -c main.c
    2. tcc.exe main.o
    obj стряпаецо, а вот на второй команде получаю
    Код (Text):
    1. undefined symbol "_MessageBoxA@16"
    Решил соскочить на си, всю сознательную жизнь кодил на масме.
    ЗЫ: не нужны мне всякие VisualStudio etc. Я хочу прохавать все, IDE=notepad++ и командная строка. Есть может у кого опыт работы с данным компилятором?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    А либы?
     
  3. dr_godsl

    dr_godsl New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2009
    Сообщения:
    60
    Booster
    я хз, в комплекте (с компилятором) нет ничего практически, пару хидеров основных либ, самих либ нет. вот я хз, чего ему надо чтобы состряпать прогу... поэтому спрашиваю.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    почему нельзя заглянуть в папочку docs и поискать ответ там? мануалы для кого пишут?
    def-файл для user32.dll уже заботливо сделан создателями компилятора...
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Там есть либа libtcc1.a, с ней нужно линковаться. Смотри опции компилятора. Или сделать батник в корневой директории tcc, тогда компилятор всё сам сделает правильно.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Rel
    Да нет, там есть tiny_libmaker.exe для создания либ. И либы там вовсю используются. В libtcc1.a уже есть всё базовое.
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    я может быть чего-то не понимаю, но у меня в libtcc1.a только местное CRT:
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Rel
    Действительно так.
     
  9. ivan2k2

    ivan2k2 New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2006
    Сообщения:
    95
    WinMain надо, а не main
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    дааааа... существенная разница)))
     
  11. dr_godsl

    dr_godsl New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2009
    Сообщения:
    60
    спасибо мужики!) опция -luser32 решила проблему.
    то Rel
    хз как я пропустил эти строки в мануале... стыдно. но походу просто запарился уже. до этого руководствуясь своей логикой писал -luser32.dll и опять получал еррор. Всех с праздником!