Denis
Без языков вот это
Denis
Но удаление или изменение этого файла никак не влияет на запуск exe
Denis
Вот что странно
Denis
Поиск blender.desktop в / ничего не дал
Berkus
значит иконку они по другому задают
Berkus
во первых, в каком DE это происходит?
Berkus
(во-вторых наверное лютый офтоп, хоть чат по осям заводи)
Denis
Ubuntu(Gnome)
Denis
Да, за оффтоп прошу прощения
Ivan
Парни, как-нибудь можно сделать так: int a = 4; //магия a++; // ошибка компиляции
Berkus
Ubuntu(Gnome)
https://portland.freedesktop.org/doc/xdg-desktop-icon.html а они ничего такого не делают?
Ivan
int const a = 4;
Нет нет нет. Это не шутка
Ivan
Надо добавить в стандарт
Berkus
Надо добавить в стандарт
для этого есть const - уже в стандарте
Berkus
(олсо если каждое выдуманное говно тащить в стандарт не объясняя зачем это нужно... Объясняй теперь!)
Ivan
для этого есть const - уже в стандарте
Я хочу вернуть константность объекту
Berkus
Я хочу вернуть константность объекту
ты не можешь ее вернуть, т.к. ее не было
Ivan
Окей. Смотрите const string a = ok ? "abc" : ""; всё нормально
Александр
если тебе нужна расширенная инициализация, юзай мой пример с лямбдой. самое удобное
Ivan
string a; if (ok) a = "abc"; // а теперь сделайте мою строку константной“
Александр
это невозможно
Ivan
Может в стандарт добавить?
Александр
тогда слетит нахрен вся система типов
Ivan
Копирование
Александр
move делай
Denis
https://portland.freedesktop.org/doc/xdg-desktop-icon.html а они ничего такого не делают?
Так это же просто создание иконки на рабочем столе, по сути. Если кастомной иконки не было, то и не появится
Ivan
Хм, меня устроит это если не будет оверхеда
Anonymous
В зависимости от условия делать переменную конст
Anonymous
Чтобы нельзя было изменять значение
Anonymous
По идеи
Ivan
Всё так.
Александр
Может в стандарт добавить?
static int a; if (something_runtime()) { // magic, that makes a const } static_assert(std::is_const_v<decltype(a)>, "will fire?");
Александр
Всё так.
ну почему нельзя сделать лямбдой???
Ivan
Можно и функцию
Александр
в лямбде нет оверхеда, там тот же RVO/NRVO
Александр
это красиво
Pavel
const int & b = a; ?
Pavel
а, было уже
Pavel
ну, вобщем да. если поведение с переменной меняется, то я бы вообще утащил этот блок в отдельную функцию с константным аргументом
Pavel
а там уж решать, ссылко оно или указатель или что там народ ещё понавыдумывал
Berkus
Может в стандарт добавить?
а может не надо всякую фигню в стандарт?
Ivan
Может быть не надо.
Nik
Может в стандарт добавить?
Добавляй, Бьярни, добавляй.
Ivan
а может не надо всякую фигню в стандарт?
На самом деле я думал как-то можно выкрутится
Berkus
/warn учитесь читать правила чата
Danylo
@berkus сегодня злой какой-то.
Ivan
Как не писать то, что я хочу я знаю и так
Berkus
Stanislav
Anonymous
Я упёрся в то, что relative path к exec и icon писать нельзя
rpath само по себе зло. Его быть не должно вообще.
Denis
Забудь о Portable приложениях в GNU/Linux.
Почему? На данный момент оно существует
Anonymous
Почему? На данный момент оно существует
Потому, что в каждом дистрибутиве свои библиотеки, собранные со своими наборами патчей и версиями, несовместимые по API и ABI.
Denis
Естественно, но у нас есть необходимость поддерживать такие версии. Понятно, что не для всех систем
Anonymous
Если ты хочешь, чтобы твоё приложение работало во всех GNU/Linux дистрибутивах, то линкуй его статически. Это единственно стопроцентно работающий вариант, но результирующий бинарник будет огромного размера из-за включения внутрь libc, libstdc++ и прочих жизненно важных для его работы библиотек. При динамической линковке требуется тащить с собой кучу динамических библиотек нужных версий, с которыми собрано приложение, и далее загружать их через такие костыли, как LD_PRELOAD.
Anonymous
Но также следует помнить, что если твоё приложение имеет закрытые исходники, ты можешь линковаться статически только с библиотеками под LGPL и более permissive, но не GPL.
Denis
Спасибо за инфу, полезно. Но у меня задача маленькая сейчас
Denis
Просто прикрутить иконку
Denis
Вещи, которые ты расписал, решаю не я
Berkus
rpath само по себе зло. Его быть не должно вообще.
он не про RPATH а про относительный путь в .desktop файле
Pavel
как докер пилить дак ничего, а как LD_LIBRARY_PATH поставить так сразу костыли
Pavel
а если багу найдут в глибц мне опять всё перелинковывать?
Berkus
как докер пилить дак ничего, а как LD_LIBRARY_PATH поставить так сразу костыли
ну кстати полностью контейнеризованные приложения это неплохой выход
Pavel
тогда уж давайте и ядра с собой таскать. чо уж
Berkus
так VM так и делает /shrug
Pavel
ато вот современные глибц же не работают со старыми ядрами айяйяй
Anonymous
а если багу найдут в глибц мне опять всё перелинковывать?
Проблемы проприетарщиков. Но таки да, перелинковывать.
Anonymous
А вообще, в мире GNU/Linux очень не любят проприетарщину. Если это приложение для внутреннего использования, тогда можно вообще собрать и слинковать динамически под конкретный дистрибутив с нужными версиями библиотек. Но если оно для end-user'ов, то шанс, что его будут использовать линуксоиды, не слишком высокий.
Matwey
а если багу найдут в глибц мне опять всё перелинковывать?
А как ты узнаешь, что её там нашли? Там десять штук на дню находят
Anonymous
есть еще всякие флетпаки и прочее
Да, Flatpak очень хорошая штука для проприетарщины. Встроенная система политик доступа решает.