Board.KolibriOS.org
http://board.kolibrios.org/

Tiny C Compiler
http://board.kolibrios.org/viewtopic.php?f=45&t=565
Page 5 of 16

Author:  O01eg [ Sat Sep 23, 2006 2:23 pm ]
Post subject: 

Code:
#define NULL ((void*)0)

Code:
void ogg_demo(void)
{
   fogg=fopen(sz_open_file,"rb");
   if(fogg==NULL)
      return;
   fclose(fogg);
}

В эмуляторе этот кусок вылетает, хотя скомпилировалось нормально, похоже ошибку вызывает fopen.

Author:  andrew_programmer [ Sat Sep 23, 2006 2:50 pm ]
Post subject: 

Для той версии fopen,которая в melibc.a надо аогументы передавать таk:

fogg=fopen(sz_open_file,'rb');

'rb' в апострофах ,а не в кавычках(хотя в правильном варианте надо в кавычках).

Author:  halyavin [ Sat Sep 23, 2006 3:07 pm ]
Post subject: 

andrew_programmer
Почему это в апострофах? Нужно передавать в кавычках.
Проблема оказалась в другом - почему-то cc1.exe при компиляции преобразует имена внешних функций из malloc в _malloc@4. С подчеркиванием я бороться научился, а вот что делать с @4 - не понятно. Из-за этого программа не линкуется :(

Author:  andrew_programmer [ Sat Sep 23, 2006 3:20 pm ]
Post subject: 

Я пробовал передавать и в кавычках и в опострафах.Если передавать в кавычках,то программа вырубается мгновенно.

Андрей,что-то не понял,что за cc1.exe ?
Где malloc преобразуется ?

Author:  halyavin [ Sat Sep 23, 2006 5:04 pm ]
Post subject: 

Сделал кое-какие исправления. Новый melibc.a можно скачать по адресу http://shade.msu.ru/~msu-se/melibc.rar
Новый metcc.exe можно скачать по адресу http://shade.msu.ru/~msu-se/metcc.rar
Новый mesys.h можно скачать с svn сервера.

Author:  halyavin [ Sat Sep 23, 2006 5:05 pm ]
Post subject: 

Программа мгновенно вырубалась из-за ошибки линковки.
сс1.exe - компилятор си (gcc), который используется при компиляции стандартной библиотеки.

Author:  andrew_programmer [ Sat Sep 23, 2006 6:06 pm ]
Post subject: 

Можно этот mesys.h выложить прямо здесь(ввиде текста) ?

Возможно из-за отсутствия нового mesys.h комбинация

f=fopen(filename,"r");
close(f);

пока не работает.


P.S.
Мне ОЧЕНЬ нужно,чтобы в metcc можно было работать с файлами.Я пишу одну научную программу под Колибри,используя metcc и KlbinWin.

Author:  diamond [ Sat Sep 23, 2006 6:17 pm ]
Post subject: 

А ещё желательно переписывание библиотеки на новую 70-ю функцию.

Author:  Serge [ Sat Sep 23, 2006 6:51 pm ]
Post subject: 

andrew_programmer
Если не обязательно использовать ANSI fopen() fread() то возьми код, который я приводил выше, запиши в файл k_file.asm скомпилируй ФАСМом. Файл линкуется при компиляции программы metcc.exe my_prog.c melibc.a k_file.o -o my_prog
Если качал исходники ядра то в папке /ac97 переписанный на Си плеер и k_lib.asm с оболочками для системных вызовов.
make.bat - пример компиляции из нескольких файлов.

Author:  andrew_programmer [ Sat Sep 23, 2006 7:22 pm ]
Post subject: 

Serge

Попробую поэкспериментировать.

Author:  O01eg [ Sun Sep 24, 2006 9:59 am ]
Post subject: 

а где этот svn сервер?

Author:  halyavin [ Sun Sep 24, 2006 10:29 am ]
Post subject: 

O01eg
svn://kolibrios.org
andrew_programmer
В mesys.h нужно удалить атрибут stdcall у процедур malloc, free, realloc.
Можешь все-таки выслать или выложить весь код - чтобы не устранять ошибки по одной.
Serge
Я нашел в компиляторе огромную проблему - раньше неправильно компилился код
Code:
int x[10];
int main()
{
  x[0]=0;//на выходе будет присвоение нулевому адресу :(
  return 0;
}

Почему-то компилятор символам из BSS присваивает какой-то очень странный номер секции, из-за чего моя процедура линковки, не найдя такой секции, не применяла соотвествующий релокейшен. На данный момент я поставил, что если у символа очень странный номер секции, то он из BSS. Но с проблемой надо разбираться...

Author:  andrew_programmer [ Sun Sep 24, 2006 10:48 am ]
Post subject: 

halyavin

Код работающий с файлом я уже выкладывал выше.А вызывается эта функция из main() так:

int main(......)
{

int length_spektr;

length_spektr=LoadSpektor("/hd/1/spc.dat");

}

Где spc.dat - текстовый файл со спектром.Как я говорил выше,в Линукс у меня LoadSpektr() нормально работает.

Вся остальная часть кода к файлам не имеет никакого отношения.

Author:  O01eg [ Sun Sep 24, 2006 10:55 am ]
Post subject: 

И чем svn:// открывать? А нельзя ли выложить mesys.h где нибудь на HTTP или FTP?

Author:  Heavyiron [ Sun Sep 24, 2006 11:00 am ]
Post subject: 

http://subversion.tigris.org/project_packages.html - версии svn-клиентов для разных ОС

Page 5 of 16 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/