LINUX.ORG.RU

4
Всего сообщений: 35

Возможно ли из приложения, запущенного в wine, получить доступ к API линукса?

Предположим, есть свободное приложение под винду. Оно использует нативный тулкит винды, так что переписывать его кроссплатформенно — слишком трудозатратно. Возможно ли так сделать, что 90% приложения я оставляю без изменений, и просто использую wine чтобы рисовать UI, а оставшиеся 10% переписываю с учетом особенностей линукс? Можно как-то протащить нативный API линукса в wine?

Например, получить родные файловые дескрипторы и вызывать для них родные функции ядра?

 , ,

wandrien ()

Что за Xojo?

Работаю удаленщиком по кроссплатформе на Qt. Не раз и не два предлагали работу на Xojo. Кто пробовал, тыкал? Имеет ли смысл эту штуку изучать или же это отправится на помойку в скором времени и React Native и прочий js победил?

 ,

ncuxer ()

Кросс-платформенный разбор аргументов командной строки

Понадобилось разбирать аргументы командной строки на С++. Самое главное требование: чтобы можно было с минимумом усилий и зависимостей собирать на Linux, Windows и MacOS. Погуглил и понял, что в случае с С++ не все так просто, как в более современных ЯП, а именно есть такие варианты:

  1. Стародедовский копролит из POSIX, т.е. getopt. Минус: в стандартной поставке MS VC++ его, как я понял, нет, ибо unistd.h. Кто-то предлагает специально для оффтопика передирать часть unistd.h и соотв. функционала, но это звучит как исключительно красноглазый пердолинг;

  2. boost.program_options Минус: только ради этого добавлять зависимость от части boost…

  3. QCommandLineParser Минус: см. п.2), только в этом случае надо тащить часть Qt, что кажется еще большим оверкиллом;

  4. Какие-то костыли из рецептов «одной бабки» с SO. Минус: нет желания лепить самодельный велосипед на ровном месте, и еще надо понять, что код вообще рабочий, а не только лайкнут автором вопроса, который этот код запустил один раз и выбросил;

  5. Какие-то васянские библиотеки. Минус: см. п.4). Хоть качество (может быть) и выше, чем портянки с SO, все равно надо тянуть доп. зависимость, и тогда уж лучше взять boost как более качественную библиотеку.

Ничего не забыл? На сколько я понял, в С++20 этого тоже нет. Как-то грустно в 21-м веке, когда уже вот-вот скоро выйдет 6й по счету стандарт языка, не иметь такой фичи в стандартной библиотеке.

 , ,

seiken ()

Кроссплатформенное мобильное приложение

Если бы я захотел сделать небольшую ide для perl на телефоны ios и android, какие инструменты мне бы лучше всего подошли?

 , , , ,

LancerRevX ()

Использовании python как замена (почти) bash для скриптов

Всем привет. Видел несколько тем на форуме, но там немного другой характер вопроса. Я сейчас в ситуации, когда приходится использовать и линукс, и окна. Поэтому я хочу унифицировать в скрипте ряд действий, которые приходится постоянно делать.

Для примера возьмем imagemagick и ghostscript. На вход я передаю путь до папки с кучей сканов в pdf и ключ объединения (объединять все pdf в один или оставить в разных файлах). Не считая разных команд (в окнах IM используется через команду magick, а в линуксе через convert), все остальное одинаковое. Я прочитал про subprocess и его метод run. В данном случае он будет уместен? Т. е. код такого вида

if sys.platform.startswith("linux"):
    subprocess.run(['convert', '-density 300', '-quality 85%', inputFile, outputFile])
elif sys.platform.startswith("win"):
    subprocess.run(['magick', '-density 300', '-quality 85%', inputFile, outputFile])
else:
    print('Платформа не поддерживается')

Правильно я применяю subprocess? И как в данном случае унифицировать отлавливание ошибок? Естественно внедрением каких-то серьезных вещей, вроде модулей логера или юнит-тестов я заниматься не буду. Это просто элементарные скрипты для упрощение части рутины.

И вообще, как сейчас смотрится идея использования python как замена для bash, кроме случае с однострочниками? Предполагается использование subprocess для обращения к программам.

 , ,

Vizarax ()

Как выбор GUI фреймворка

Хочу создать кроссплатформенное приложение ( очень сложное )
требования к кроссплатформенному GUI фреймворку:

  1. бесплатный, и желательно без LGPL или GPL
  2. много доков ( желательно на русском )
  3. мало или вообще без зависимостей ( so/dll )


И ещё ...
Посоветуйте GUI либу ( для linux ), лучше всего — предустановленная, но можно и с полностью статической линковкой. Хочу сделать свой GUI фреймворк...

 , , , ,

lfed-dev53 ()

Cross Platform Package Manager for C++

Добрый День,

Решал прикладную задачу на C++ и понял, что не плохо бы поделиться с миром инструментом для Cross Platform Package Manager for C++

Документация и детали доступны здесь: https://github.com/amidukr/pak-c-mak

Интересны фидбеки, стоит ли мне продолжать?

 , , , ,

amidukr ()

FOSS Программа создающая 3D параметрическую модель колеса автомобиля. Запущена кампания.

Добрый час всем, кроме вредителей.

Запущена кампания по созданию кросплатформенного свободного программного обеспечения с открытым исходным кодом, создающего трехмерную параметрическую модель колеса автомобиля. Результат может быть использован в другом ПО, через экспорт/импорт.

( дополнительные медиа данные )

discord invite . Обсуждение этого и будущих моих проектов. https://discord.gg/wFm2UgV

кампания на indiegogo https://igg.me/at/healingdrawing-wheelcreator

сайт разработчика (дополнительная информация) https://healingdrawing.github.io/

 , , , ,

HealingDrawing ()

Кроссплатформенная разработка

Подскажите, на чём писать крупное коммерческое ПО с GUI, чтобы быстро и дёшево и нативно на все десктопные ОС. Какие языки, компиляторы и библиотеки лучше использовать? Рассматриваю вариант взять за основу существующую разработку с github и прочих, но приходит понимание, что в миллионах строк чужого кода разобраться немногим легче, чем написать свои. Какие opensource-проекты можно рассматривать для коммерческой разработки? Где почитать про структуру этих проектов и варианты использования у себя? Буду благодарен за любые советы, если есть полезные мне ссылки - шлите и их.

 , ,

august ()

В поисках чего-то легковесного для работы с ФС

Писал небольшой проект (2D игра, C++/SFML), как говорится, «для души». Но появились кое-какие перспективы на дальнейшее развитие и монетизацию, решил портировать на другие платформы: сборка под мак прошла гладко, заработало все сразу. А вот с виндой вечно какие-то проблемы... То собираться не желает (привет соблюдению стандартов в мелкомягком компиляторе), то еще какая-нибудь хрень. Потанцевав с бубном, обнаружил, что под виндой как-то некорректно воспринимаются пути к файлам. Посоветуйте какую-нибудь легковесную либу для работы с ФС (стандартное вроде только в C++17 завезли, и я не особо хочу на него переходить), чтобы не проектировать велосипед.

 , ,

Meyer ()

Кросс-платформерный гуй для псевдоэнтерпрайз, или как выбрать из ничего?

Приветствую лорчане! Есть тут подозреваю люди имевшие дело с кроссплаформерными GUI-app. Вот завели внутренний проект,который сейчас в зачаточном состоянии. Основные пользователи на Windows и как бэ я топлю за кросс-платформу в виде нынче модных CEF, React, Python и других UI создающихся с помощью скриптовых ЯП в связке с dotNet core(С#), который «команде» знаком всяко лучше Java, и просто интересен ,т.к. удобство C# да еще и с нативной работой под НЕ окнами это круто. В поисках и размышлениях, выбор пал на Electron в связке с Angular 2/4(клиентское приложение будет иметь по задумке ограниченый функционал в плане вычислений, основные расчеты будут происходить на сервере, который как не странно на dotNet Core)

Поработав с ангуляром в принципе остался доволен,но вот все чаще натыкаюсь на критику,мол: «все плюшки TS в нем сводят на нет и вообще...» что конечно натолкнуло более активно поискать альтернативу, попал на Kivy для Python. В принципе последний тоже хорош,но в отличие от Angular 2 на врядли из коробки приспособлен для работы с таблицами,коих будет много и разных.

Основной фичей проекта является модульность. Клиент изначально чист, и после запуска и авторизации начинает загружать свою конфигурацию с сервера со всем необходимым. Так что вариант с WinForms и подобным выглядит очень неприглядно.Да и за адекватные компоненты платить как правило немало надо.(будто того факта что это WinForm мало)

Может кто поделится опытом разработки кроссплатформенного гуя на подобном стеке? Какие есть еще альтернативы? Или лучше сдаваться и идти мучать мертвеца?

Заранее извиняюсь за форму повествования.Благодарю за помощь!

 , , , ,

mister_LOB ()

помогите разобраться с лицензиями qt

Собственно интересует возможность выложить приложения под iOS/Android и получать за это деньги и при этом не платить. Насколько я понимаю, то можно, если использовать статические некоммерческие либы. Как я определю что либы не коммерческие? Я устанавливаю под мак например с помощью online installer'a. Если да, то по какой из лицензий. Заранее спасибо.

 , ,

ECLIPSE ()

Gentoo и crossdev - пролбема с удалённой отладкой

Пытаюсь разобраться с кросскомпиляцией и удалённой отладкой на Gentoo.

Поставил crossdev, сконфигурировал тулчейн:
crossdev --ex-gdb -t arm-unknown-linux-gnueabihf

И на тестовом примере получается какая-то хрень:

user@japet ~/Temp/2 $ cat ./test1.c 
/*
 * 
 */

#include <stdio.h>

int main( int argc, char** argv ){
        printf("Hello World!\n");
        return 0;
}
user@japet ~/Temp/2 $ arm-unknown-linux-gnueabihf-gcc -g -o ./test1 ./test1.c 
user@japet ~/Temp/2 $ ls -l ./test1
-rwxr-xr-x 1 user user 6028 апр 21 06:20 ./test1
user@japet ~/Temp/2 $ scp -P 2200 test1 pi@rpi:/home/pi/tmp
test1                                                                                                            100% 6028     1.4MB/s   5.9KB/s   00:00    
user@japet ~/Temp/2 $ arm-unknown-linux-gnueabihf-gdb ./test1             
GNU gdb (Gentoo 7.12.1 vanilla) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-pc-linux-gnu --target=arm-unknown-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
 — — Loading Rust pretty-printers — — 
Reading symbols from ./test1...done.
(gdb) target remote rpi:2345
Remote debugging using rpi:2345
warning: Can not parse XML target description; XML support was disabled at compile time
Reading symbols from /usr/arm-unknown-linux-gnueabihf/lib/ld-linux-armhf.so.3...(no debugging symbols found)...done.
Remote 'g' packet reply is too long: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f3ffbe0000000040fdfcb610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0xb6fcfd40 in ?? () from /usr/arm-unknown-linux-gnueabihf/lib/ld-linux-armhf.so.3
(gdb) list
1       /*
2        * 
3        */
4
5       #include <stdio.h>
6
7       int main( int argc, char** argv ){
8               printf("Hello World!\n");
9               return 0;
10      }
(gdb) break main
Breakpoint 1 at 0x10414: file ./test1.c, line 8.
(gdb) cont
Continuing.

Breakpoint 1, main (
    argc=<error reading variable: Remote 'g' packet reply is too long: 0100000034f3ffbe3cf3ffbe000401000000000000000000d002010000000000000000000000000000f0ffb6dcf1ffbe0030fab6d0f1ffbe94e2e7b61404010010000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>, argv=0xbefff334) at ./test1.c:8
8               printf("Hello World!\n");
(gdb) next
main (argc=1, argv=0xbefff334) at ./test1.c:8
8               printf("Hello World!\n");
Remote 'g' packet reply is too long: 0100000034f3ffbe3cf3ffbe000401000000000000000000d002010000000000000000000000000000f0ffb6dcf1ffbe0030fab6d0f1ffbe94e2e7b61404010010000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(gdb) cont
Continuing.
^CQuit
(gdb) quit
A debugging session is active.

        Inferior 1 [process 7611] will be killed.

Quit anyway? (y or n) yes


Откуда вот этот «Remote 'g' packet reply is too long»?
И почему '(gdb) cont' не отрабатывает в конце, а зависает и приходиться обламывать по Ctrl+C?

На удалённой машине вообще ничего:
pi@raspberrypi:~/tmp $ ls -l
total 8
-rwxr-xr-x 1 pi pi 6028 Apr 21 06:22 test1
pi@raspberrypi:~/tmp $ gdbserver :2345 ./test1 
Process ./test1 created; pid = 7611
Listening on port 2345
Remote debugging from host 192.168.34.198
GDBserver exiting

 , ,

WatchCat ()

Desktop-приложение для Linux / OS X на чём написать?

Хочу написать GUI-приложение, да так, чтобы впоследствии было достаточно нетрудно его перенести на OS X, в идеале просто скомпилировать для этой платформы и оно заработало. Какой язык / стек выбрать?

Гуглёжь подсказывает C# в виде Xamarin, но неясно как это всё устроено. Electron + JS как-то неохота, JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги. Всякие FreePascal рассматривать вообще?

Java? Наверное, таки Java?

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

 , , ,

Alve ()

Кроссплатформенная библиотека для управления роутами

Подскажите, есть такая в природе для плюсов? Чтобы работало под вин/маком/линуксом

 , ,

ncuxer ()

Собрать msi installer под оффтоп из под линукса

Коллеги, у меня немного специфичное желание, но думаю поймете.

Мы делаем софт и пакуем его в deb и rpm пакеты.

Пишем мы на эрланге и платформозависимая часть на C обновляется очень редко, поэтому платформозависимая часть (сборка эрланга, пара либ) лежит просто в архиве, который подкладывается при сборке пакета.

Пакеты я собираю вообще под маком и всё нормально работает.

Пришел клиент и ноет, что ему нужна винда. Я конечно всё сказал про винду, но поскольку он принес денег, надо ему помочь конечно.

Инсталяторов полно, но может есть что-то, что позволит так же собирать пакеты из под линукса/мака? Один раз под виндой собрать эрланг, положить в архив и потом просто распаковывать при сборке?

 , ,

max_lapshin ()

Кросс-компиляция в Go

Доброго времени суток. Никак не могу скомпилировать кросс-плотформенную программу в Go. Как это сделать? https://gist.github.com/KennyDalglish/66dd9b46a70a9109d62d Зарнее спасибо

 , , ,

continue ()

Как кроссплатформенно запустить приложение из C++ программы?

Существуют ли кроссплатформенные возможности запустить программу из другой программы на C++?

 , ,

user08 ()

JetBrains планирует выпустить IDE для C#

Сегодня, на конференции NDC Лондоне, компания JetBrains объявила старте нового проекта, над которым они уже работали некоторое.Это будет кросс-платформенная IDE для C# на основе IntelliJ Platform и технологии используемых ReSharper (плагине для Visual Studio).

Кодовое название проекта - Rider.

Подробности

Перемещено beastie из commercial

 , , , ,

Jack-Laphroaig ()

Библиотека для кросплатформенных сервисов

Доброго время суток. Существует такая либа в природе? Хотя бы как apache, под unix демон, под оффтопиком консоль? Дефайны рулят, но не верится, что этого уже нет.

 , ,

Booster ()