LINUX.ORG.RU

Сообщения zanac1

 

Отвалилась тёмная тема в Opera mobile 10

Захожу время от времени с любимой нокии 5800 посмотреть на лор - а тут засада. Всё белое.

Upd: в предыдущий раз заходил с нокии в конце прошлого года, тёмная тема была.

 

zanac1
()

Дикий жор памяти при сборке кросскомпилятора

Собираю кросскомпилятор arm-gcc с make -j6.

В первый выжрал все 8 гиг рамы и превед адские тормоза. Думал чутка памяти не хватает - добавил 10 гигов свопа - выжрало все и не подавилось, превед адские тормоза.

Как сию похабщину исправить?

Ось - Devuan chimera x64. Ничего не ковырял, обнов не ставил. В сабже нуб.

Раньше собирал под msys - был свой цирк с конями, но память не жрало как не в себя.

 , , ,

zanac1
()

Как задать свой путь к squashfs.img из папки LiveOS

В общем купил SSD, фирменная утилита для него либо под 10 либо в сборке с live Fedora.

Записал на флешку live Fedora, для загрузки использую syslinux. Грузится, утилита вроде работает.

Хочу поставить рядом Void linux. По умолчанию и Fedora и Void linux ищут squashfs.img в папке LiveOS в корне флешки.

Как задать свой путь по умолчанию к squashfs.img? Ну или другое имя поиска.

 , , ,

zanac1
()

Sylpheed удалил всю почту

Как восстановить почту? Чем проще, тем лучше. Локальный кэш остался.

Причина удаления - по-умолчанию в настройках стояло удалять старую почту.

 

zanac1
()

Как убрать прямое обращение к переменной в шаблоном классе.

Есть в библиотеке такой класс, TAutoClose, освобождающий ресурсы своего члена класса, вызывая его метод Close(), при выходе из области видимости. При этом глаза мозолит использование iObj:

TAutoClose<RApaLsSession> cmd;
cmd.iObj.Connect();
cmd.iObj.Send();

Хочу так:

cmd.Connect();
cmd.Send();

Добавил реализацию оператора &(видел подобный фокус с оператором '*' для умных указателей), всё равно компилятор говорит, что не видит функции:

T& operator&() {
return iObj;}

Вот общий вид этой группы классов: TAutoClose освобождает ресурсы группы классов вида:

class RExample:
{
   int handle;
public:
   void Close() {}
}

И сам класс:

template <class T>
class TAutoClose
/**
@publishedAll

Automatically calls Close() on an object when that object goes out of scope.
The behaviour takes advantage of the fact that the compiler automatically
destroys objects that go out of scope.
*/
    {
public:
    inline ~TAutoClose();
private:
    static void Close(TAny *aObj);
public:
    /**
    An instance of the template class.
    */
    T iObj;
    };

// Class TAutoClose
template <class T>
inline TAutoClose<T>::~TAutoClose()
/**
Destructor.
The implementation calls Close() on iObj, the instance of the template class.
*/
    {iObj.Close();}
 
template <class T>
void TAutoClose<T>::Close(TAny *aObj)
    {((T *)aObj)->Close();}

 

zanac1
()

В скрипте функции выполняются не по очереди, а вразнобой.

Функции в скрипте python выполняются в произвольном порядке. Я ожидаю, что функции выполняются друг за другом. Сам скрипт - это набор функций.

Вся логика находится в файле ‘init.py’(знаки подчеркивания в начале и конце имени файла режет парсер сайта).

Среди них две функции(модули piper и build_apps) запускают многопоточную сборку друг за другом, может из-за этого проблемы.

Исходный код - GitHub.

Ожидаемый лог:

  • Engine *.mmp done!(собираются статические библиотеки)
  • Target ScummVM?.mmp done!(собираются exe)
  • pkg: *.pkg(собираются установочные файлы)

Лог сборки:

Queue size: 92  
Thread count: 6
Queue size: 8
Thread count: 6
pkg: Neverhood.pkg
pkg: Neverhood_cmdline.pkg
Target ScummVM5.mmp done!
Target Neverhoode.mmp done!
 Target ScummVM1.mmp done!
Engine access.mmp done!
Engine adl.mmp done!Engine agi.mmp done!

Engine avalanche.mmp done!
Target ScummVM6.mmp done!
Target ScummVM2.mmp done!
Target ScummVM3.mmp done!
Engine buried.mmp done!
Target ScummVM7.mmp done!
Engine asylum.mmp done!
Target ScummVM4.mmp done!
Engine cge.mmp done!
Engine cge2.mmp done!
Engine chewy.mmp done!
Engine composer.mmp done!
Engine cine.mmp done!
Engine cryo.mmp done!
Далее много «Engine *.mmp done!»

Чяднт? P.S. Python 2.

 ,

zanac1
()

В скрипте несколько вызовов datetime.now() выдает одинаковое время

Хочу использовать модуль питона в логах. Урезаная версия:

from datetime import datetime

print "Datetime: %s"  %datetime.now()
print "Hello world!"
print "Datetime: %s"  %datetime.now()

Выхлоп:

Datetime: 2021-06-20 22:21:39.796000
Hello world!
Datetime: 2021-06-20 22:21:39.796000

Вместо хелловорда поставьте тяжелую задачу, сборка буста например. Чяднт?

 

zanac1
()

Ищу спецов умеющих в плагины для Eclipse

Я, автор релизов ScummVM для Symbian, прошу помочь перенести плагины к Eclipse с поддержкой Symbian на новое ядро. Исходный код — github.com/SymbianSource/oss.FCL.sftools.dev.ide.carbidecpp и github.com/SymbianSource/oss.FCL.sftools.dev.eclipseenv.carbideui. И справка SDK не подключается, тоже нужно починить.

 , ,

zanac1
()

Как правильно инициализировать список(std::list) объектов «на лету»?

Создаётся список(std::list) объектов с нетривиальным конструктором «на лету», элемент за элементом. Как их правильно инициализировать?

 

zanac1
()

Как заполнить буфер используя поля струтуры

В памяти создается пустой массив uint32_t для структуры:

struct Elf32_HashTable
{
  uint32_t nBuckets;
  uint32_t nChains;
  uint32_t bucket[nBuckets];
  uint32_t chain[nChains];
};

Размер массива вычисляется по формуле uint32_t sz = 2 + iNSymbols + iNSymbols/3 + iNSymbols%0x3;, где nBuckets = iNSymbols/3 + iNSymbols%0x3;.

Как можно заполнить поля bucket и chain без дополнительный указателей, причем заполняться будут в случайном порядке?

Можно заполнять через указатели pBucket = &buf[x], но хочется минимализма...

 

zanac1
()

При обращении по указателю программа падает

Программа работает с буфером готовых данных char*. Используется две структуры:

struct Buffer
{
  uint32_t bufsize;
  Bufdata* data;
}

struct Bufdata
{
  uint32_t datasize;
  const uint32_t* data;
}

Код:

Buffer* buf = (Buffer*)rawDataAsCharArray;
Bufdata* bdata = buf->data;
printf(bdata->datasize); //упс, упало
Если в Buffer убрать поле Bufdata* data и сделать так, то все норм:
Bufdata* bdata = (Bufdata*)(rawDataAsCharArray+sizeof(Buffer) );
printf(bdata->datasize); //ок
Компилятор - GCC 5.3.0 Чядн?

 ,

zanac1
()

Вышел порт для линукса утилиты elf2e32

elf2e32 создает бинарные файлы для Symbian из elf.

Преимущества этой утилиты над аналогами:

  • кроссплатформенность;
  • код распространяется под Eclipse Public License;
  • стабильность.

Минус:

  • итоговый размер файла на ~15% больше, чем у аналогов из-за ошибки расчета размера бинарного файла.

Ссылка

Перемещено Shaman007 из development

 , ,

zanac1
()

Самодельный пасер на С++ : не удаляет комментарии

Написал программу которая должна удалять комментарии в файле исходного кода С++. Условия: // /* и */ не будут содержаться в самих комментариях, строках и символьных константах. Проблемы: '*/' сохраняется в файл. Код:

#include <iostream>
#include <fstream>

using namespace std;

const char *filename = "commandLine.h";
const char *filename2 = "commandLine_out.h";

int main()
{
    ifstream in(filename, ios_base::in);
    if(!in.is_open())
        std::cout << "Input file not found!" << std::endl;

    ofstream out(filename2);
    if(!out.is_open())
        std::cout << "Output file not found!" << std::endl;

    string line;

    bool inComment = false;
    bool afterComment = false;
    int i = 0;

    while(getline(in, line))
    {
        i++;
        line.append("\n");
//        std::cout << inComment << std::endl;

        if(afterComment == true)
        {
//            inComment = false;
            afterComment = false;
        }

        if(line.find("//")!=std::string::npos)
            inComment = true;

        if(line.find("/*")!=std::string::npos)
            inComment = true;
        if(line.find("*/")!=std::string::npos)
            inComment = false;
            afterComment = true;
        std::cout << i << " : " << inComment << "-" << afterComment <&lt; std::endl;
        if((inComment == false)&&(afterComment == true))
        {
            out << line;
        }
    }

    out.close();
    in.close();
    cout << "Hello world!" << endl;
    return 0;
}

 

zanac1
()

FFMPEG : не собирается под MSYS

Решил собрать FFMPEG под Symbian. Цель - получить набор статических библиотек : compat, libavcodec, libavfilter, libavformat, libavresample ,libavutil, libpostproc, libswresample, libswscale.

Окружение : WinXP64 sp2, GCCE 4.4.1 от Codesourcery для Symbian, MinGW 4.8.1, Msys

Что сделано : взял с вики ffmpeg сборочный скрипт для Rasberry и доработал:

./configure --enable-cross-compile --cross-prefix=arm-none-symbianelf- --enable-static \
 --disable-shared --arch=arm --target-os=symbian --cc=arm-none-symbianelf-gcc \
 --enable-armv6t2 --cpu=armv6t2 --disable-mmx --incdir=epoc32\include\ffmpeg \
 --disable-runtime-cpudetect --enable-gray --disable-programs --disable-doc \
 --enable-rpath --disable-avdevice --enable-gpl --enable-nonfree \
 --prefix=$EPOCROOT --sysinclude=/d/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include

В configure есть поддержка Symbian, был получен config.h и config.mak s активированными ассемблерными файлами под armv6t2.

    symbian)
        SLIBSUF=".lib"
        enable dos_paths
        add_cflags --include=$sysinclude/gcce/gcce.h -fvisibility=default --include=$sysinclude/symcpp.h
        add_cppflags -D__GCCE__ -D__SYMBIAN32__ -DSYMBIAN_OE_POSIX_SIGNALS
        ;;

Проблемы: 1) Autoconf нашел лишь часть функций libc, например пропустил всё в math.h. Лог на http://pastebin.com/adatjSkB

2) при сборке в MSYS:

$ make
CC      libavfilter/aeval.o
In file included from libavfilter/aeval.c:26:
./libavutil/avassert.h:30: fatal error: stdlib.h: No such file or directory
compilation terminated.
make: *** [libavfilter/aeval.o] Error 1

ЧЯДНТ?

 , , , ,

zanac1
()

GCC не видит хедеры библиотеки С

Пытаюсь собрать libflac под Msys. на команду :

CFLAGS=-O1 configure -mcpu=armv5t --with-ogg-includes=«$EPOCROOT\epoc32\include\tremor» --includedir=$EPOCROOT/epoc32/include/libc --host=arm-none-symbianelf --prefix=$EPOCROOT/epoc32 -includes=$EPOCROOT\epoc32\include\tremor получаю :

checking for ANSI C header files... no checking for sys/types.h... no checking for sys/stat.h... no checking for stdlib.h... no checking for string.h... no checking for memory.h... no checking for strings.h... no checking for inttypes.h... no checking for stdint.h... no checking for unistd.h... no

Нужно получить статическую библиотеку

 , , ,

zanac1
()

RSS подписка на новые темы