Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Nov 12, 2019 12:53 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 122 posts ]  Go to page Previous 1 2 3 4 59 Next
Author Message
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Jul 12, 2016 1:18 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1151
Я правильно понял, из-за проблем с относительными путями, собрать одну из программ на SVN не выйдет? Или же я что-то не так делал?

_________________
я лишь учусь


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Jul 12, 2016 10:27 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
GerdtR wrote:
Увы, в КОС текущий каталог устанавливается как /rd/0 и не важно откуда запущена прога. А у прог с newlib текущий каталог ставится как путь, где находится сам кекс, что не многим лучше.
Не так. Все приложения в системе наследуют текущий каталог от родительского процесса. Это свойство ядра. Разработчики файловых менеджеров забывают переключать рабочий каталог при навигации по дереву. Поэтому рекомендую пользоваться SHELL.


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Jul 12, 2016 4:57 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Serge wrote:
Поэтому рекомендую пользоваться SHELL.
Так вроде у Shell тоже "/rd/1". svn6300-img

Это выводит текущую директорию в BOARD:
Spoiler: Show
Code:
ORG 0
BITS 32
; ------------------------------------- ;
STACK_SIZE             equ 256
; ------------------------------------- ;
MENUET01                db 'MENUET01'
version                 dd 1
program.start           dd START
program.end             dd END
program.memory          dd END + STACK_SIZE
program.stack           dd END + STACK_SIZE
program.params          dd 0
program.path            dd 0
; ------------------------------------- ;
CD_BUFFER_SIZE equ 1024
cd_buffer times CD_BUFFER_SIZE db 0
db 0
; ------------------------------------- ;
START:
        mov    eax, 30
        mov    ebx, 2
        mov    ecx, cd_buffer
        mov    edx, CD_BUFFER_SIZE
        int    64
        mov    eax, 63
        mov    ebx, 1
        xor    ecx, ecx
        mov    esi, cd_buffer
.next:
        mov    cl, [esi]
        jcxz   .done
        int    64
        inc    esi
        jmp    .next
.done:
        mov    cl, 13
        int    64
        mov    cl, 10
        int    64
        mov    eax, -1
        int    64
END:
Attachment:
d_print_cd.kex [1.1 KiB]
Downloaded 105 times

Spoiler: Show
Image


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Jul 12, 2016 7:39 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
0CodErr, в SHELL сначала cd /tmp0/1, а потом уже свою смотрелку запускать. Тогда да, прога покажет /tmp0/1.
Siemargl, не понял, о каких "несколько printf-ов сообщений об ошибках" ты говоришь. Я заменил все sprintf(STD_OUT,...) на printf из-за появления отсутствующих линков, не помню, чтоб я что-то делал с выводом ошибок.
Siemargl wrote:
Думаю это вполне можно поправить в разборе командной строки.

Опять не понял, каким образом? Как для fasm указывать каталог с исходниками если?
punk_joker, видимо, пока нет, любой инклудник не будет найден.
Вообще, сейчас я несколько нагружен, так что быстро исправлять не могу.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Wed Jul 13, 2016 10:43 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
GerdtR wrote:
в SHELL сначала cd /tmp0/1, а потом уже свою смотрелку запускать. Тогда да, прога покажет /tmp0/1.
А, ну так-то да. После cd конечно должно работать :) В shell-ах других ОС, насколько знаю, тоже надо делать сперва cd.
Вот, кстати, должна ли программа для зауска приложений также менять текущую директорию?
Может быть, лучше даже опционально(CheckBox, например). Имею в виду такую программу viewtopic.php?f=9&t=2122


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Wed Jul 13, 2016 12:43 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
0CodErr
Quote:
Вот, кстати, должна ли программа для зауска приложений также менять текущую директорию?

По хорошему дополнительно надо указывать рабочий каталог для запускаемой программы. SHELL я рекомендовал потому, что там cd меняет рабочий каталог. Раньше и этого не было.


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Fri Oct 07, 2016 10:32 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
GerdtR

Проверил С-- под Колибри. Уже купил ноутбук специально для программирования под ней.
Некоторые программы собирает, но не все.

1. cmm/aelia не собирается под Колибри, собирается под Windows
2. warning'и пишутся на доску отладки, хотя они должны писаться в файл *.ERR, на доску должны выводиться только ошибки и результат сборки

_________________
Через тернии к звездам


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Wed Oct 26, 2016 10:03 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Всем привет. На сегодняшний день такое положение вещей.
1. Текущий каталог в cmm устанавливается как каталог до самого cmm.kex, и не важно, какой каталог был установлен. Скриншот проблемы прилагаю. Впрочем возможно проблема исчезнет, когда у меня получится слинковать с новым libc(ругается на отсутствующие функции abort и atexit, в какой библиотеке они - не знаю, но в последнем sdk их нет).
2. Warning'и пишутся на доску отладки, потому как в файле errors.cpp функции warningprint закоментирон sprintf, а вместо него просто printf. Короче, пофиксить - секундная работа. Правда, закономерный вопрос... как бы обычно компиляторы всё в консоль пишут(в нашем случае доска отладки). Не стандартно, по-моему. Или в файл удобнее?


Attachments:
screen.PNG
screen.PNG [ 47.03 KiB | Viewed 4721 times ]

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Wed Oct 26, 2016 11:11 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
Закоммитил микропатчик, чтобы собирался gcc5.4 с libc.dll
Работает, но только если cmm.kex в каталоге с компилируемой программой


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Thu Nov 10, 2016 2:58 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Так, пока выложу текущий результат. Эта версия компилит в любой папке проекты. То есть кидаем c--.kex на /rd/0 , с--.ini можно один на всех туда же положить, а можно в папку проекта(сначала будет искать в папке с проектом) и всё, с консоли или скриптом можно компилить, не указывая полный путь до c--.kex. Да, избегайте пока папок, имеющих имя длиннее 7 символов.


Attachments:
c--.kex [219.5 KiB]
Downloaded 86 times

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Fri Nov 11, 2016 7:38 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Проблема с относительными путями исправлена. Короче, теперь всё видит.


Attachments:
cmm [219.47 KiB]
Downloaded 100 times

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Sat Nov 12, 2016 11:38 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
Ну теперь заживем! :)
Спасибо!

_________________
Через тернии к звездам


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Sat Nov 12, 2016 5:35 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Ещё есть недочёты, под отладчиком их видно, так что возможны ошибки в работе.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Mon Nov 14, 2016 3:47 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5064
GerdtR wrote:
Проблема с относительными путями исправлена. Короче, теперь всё видит.

Никаким образом не смог заставить работать.
Упорно отказывается кушать "..", ты точно правильную версию файла прикрепил?

P.S. Вывод в консоль шикарен.


Attachments:
1.png
1.png [ 120.39 KiB | Viewed 4538 times ]

_________________
Через тернии к звездам
Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Mon Nov 14, 2016 8:13 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Хм... во-первых, поправь "\" на "/" , у нас КОС такой не поддерживает, а дополнительной обработки в коде нет.
Во-вторых, по непонятной мне причине, В argv[0] перед путём к экзешнику ставится символ сердечко. Ещё проверю, что да как, может мой косяк.
И да, есть костыль :) В пути в инклуде пиши вместо ../lib что-нибудь вроде fold/../../lib. Да, не красиво, но если ".." в середине, то обрабатывается. Только папка fold нужна в каталоге с исходником.
Сделал поправку, теперь прога в пути для поиска добавляется путь с комптлируемым файлом(думал, что он добавляется, но оказалось, что нет)
PS: пока весь этот вывод в консоли пусть будет, мне удобней с ним. Когда с путями разберусь уже, то уберу.


Attachments:
cmm [219.37 KiB]
Downloaded 93 times

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 122 posts ]  Go to page Previous 1 2 3 4 59 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited