nasm, vc, gcc и другие

Applications development, KoOS API questions
  • А если добавить -nostdlib ?
  • Так ведь использую makefile такой же, как и binclock... Вызываются соответсвенно mgcc, mld - где уже есть и nostdinc, и nostdlib.
    Сейчас вот выдает

    Code: Select all

    /home/sourcerer/me/lib/libc.a(crt1.o): In function `__crt1_startup':
    crt1.c:(.text+0x37): undefined reference to `main'
    make: *** [demo] Ошибка 1
    
    Буду разбираться, чем отличается код binclock от стандартного примера...

    upd: о_О а в нем нет main()..
  • Код из статьи diamond'а... Действительно, main() нет. После переименования app_main в main все отлично собралось и даже работает.

    Code: Select all

    #include <menuet/os.h>
    
    const char header[] = "HelloWorld test";
    const char string[] = "Hello, World!";
    
    void draw_window(void)
    {
    	// start redraw
    	__menuet__window_redraw(1);
    	// define&draw window
    	__menuet__define_window(10,40,150,50,
    		0x33FFFFFF,0,(__u32)header);
            // display string
            __menuet__write_text(30,10,0x80000000,string,0);
            // end redraw
            __menuet__window_redraw(2);
    }
    
    void app_main(void)
    {
    	draw_window();
    	for (;;)
    	{
    		switch (__menuet__wait_for_event())
    		{
    		case 1:
    			draw_window();
    			break;
    		case 2:
    			// key pressed, read it and ignore
    			__menuet__getkey();
    			break;
    		case 3:
    			// button pressed; we have only one button, close
    			return;
    		}
    	}
    }
    
    
  • В исходной menuetlibc главная функция звалась не main(), а app_main(). В Колибри-версии в некоторый момент развития главную функцию таки переименовали, на binclock, входящей в комплект поставки, это отразилось, а пример из статьи не обновлялся.
    Ушёл к умным, знающим и культурным людям.
  • Я прилагаю генератор проектов для VS2010. Генератор спрашивает имя проекта, в котором могут быть только латинские буквы, цифры и дефисы, и путь к fasm, который используется на конечной стадии компиляции. Генератор создаёт в текущей папке подпапку с именем, совпадающим с именем проекта, в которой создаёт файл .sln для студии, основной файл .cpp с примером HelloWorld'а и подпапку с примитивной библиотекой, взятой откуда-то с svn и немного доработанной.

    UPD от 13 Nov 2014: минус RTTI в настройках проекта, исправляет проблему с виртуальными функциями.
    Attachments
    makevcproj.7z (13.81 KiB)
    Генератор.
    Downloaded 450 times
    Исходные тексты генератора.
    Downloaded 447 times
    Сделаем мир лучше!
  • Обновил статью диамонда: http://kolibri-n.org/inf/hll/hll.php

    Теперь во всех браузерах работают внутренние ссылки, есть подсветка кода, добавил генератор проектов для VS2010 от CleverMouse, обновил ссылки (может пока не все), добавил ссылки на LUA и Pyton.

    Хочу ещё добавить инфу о FreeBasic и Delphi. Про newlib.

    Пожалуйста, укажите на неточности в статье, я постараюсь исправить.
    Из хаоса в космос
  • Статью всю не читал, но бросилось в глаза то что fasm там старых версий:
    под виндовсом - 1.16.14
    а в Колибри - 1.16.20, хотя после того интерфейс менялся, добавлялась галочка про отладочную информацию и текстовые поля вместо того хитрого ввода что был раньше
    Attachments
    fasm_1_70_03.png
    fasm_1_70_03.png (3.79 KiB)
    Viewed 12224 times
  • Точно, спасибо.
    Из хаоса в космос
  • Компилятор TCC был доработан для генерации Колибри-бинарников. Также написана некоторая часть C RTL на базе функций Колибри. Исходники как самого компилятора, так и RTL доступны на svn-сервере Колибри: svn://kolibrios.org/programs/develop/metcc/trunk.
    Для начала надо скомпилировать сам компилятор :) Для этого нужно что-нибудь из MinGW/cygwin/linux, где есть компилятор GCC. При наличии такового нужно в папке source сказать

    gcc tcc.c -o tcc.exe
    Путь другой, вдобавок tcc получается для Колибри, а не для Windows, в остальном все так же.
  • Эээ... какой путь? А где сказано, что tcc для Вин, а не Колибри?
    Из хаоса в космос
  • Статья была написана до появления macro header в macros.inc. Образец кода FASM компилировавшийся на тот момент правильно, теперь застревает на "header db 'HelloWorld test',0", на что регулярно напарываются новички и из раза в раз пишут об этом на форуме. Давно бы пора поправить во всех копиях статьи до которых дотянутся руки header на title или чего-нибудь другое работоспособное.
    Зы При правке придётся и скриншот поправить, где "header" виднеется
  • Тоже годное замечание - исправил. Скрин FASM'a обновил. Ссылки на темы про FreeBasic и Delphi добавил. Кратко написал про newlib.
    Из хаоса в космос
  • В вики (для последующего омаркдаунивания).
  • SoUrcerer wrote: Путь другой
    Leency wrote: Эээ... какой путь?
    svn://kolibrios.org/programs/develop/ktcc//trunk/

    http://websvn.kolibrios.org/listing.php ... 2Ftrunk%2F&
  • Who is online

    Users browsing this forum: No registered users and 9 guests