Задать вопрос
  • Не устанавливается libpqxx на Windows через vcpkg/conan?

    Nipheris
    @Nipheris Куратор тега C++
    Totem можно конечно и для clang попробовать собрать, если нужно.
    Вообще в Конане любая библиотека с полноценным рецептом автоматически начинает собираться под нужную конфигурацию, если предварительно собранного бинаря найдено не было. Однако невозможно гарантировать, что абсолютно все конфигурации для библиотеки работоспособны, т.к. их комбинаторное число огромно. Но в целом хорошо написанный рецепт либо успешно собирает библиотеку, либо выдаёт ошибку с описанием того, что конкретно ваша конфигурация не поддерживается.

    В вашем случае происходит что-то странное, нужно выяснить, для какой конфигурации Конан начал собирать libpq. И зачем ему nmake - возможно он всё-таки пытается собрать для Visual Studio, а ваша конфигурация не совпала с предсобранной по другим параметрам.
  • Не устанавливается libpqxx на Windows через vcpkg/conan?

    Nipheris
    @Nipheris Куратор тега C++
    Totem а какой компилятор вы используете? Разве в CLion нельзя выбирать компилятор?
  • Как исправить ошибку Error LNK2019 unresolved external symbol... при вызове функции из сторонней библиотеки?

    Nipheris
    @Nipheris Куратор тега C++
    Андрей и более того, эту библиотеку ещё собрать нужно, она не header-only.
    И кстати, что это за библиотека? Выглядит как что-то не очень поддерживаемое. Вы уверены, что не лучше взять какой-нибудь GEOS для ваших задач?
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth у вас в логах теперь совершенно другие ошибки, проблему с ненахождением Буста мы поправили.
    REQUIRED и CONFIG убирать не нужно, лучше от этого не станет. Убрав REQUIRED вы просто говорите "ну ладно, можно не находить библиотеку, я потом по значению переменной проверю нашлась она или нет", но это нужно если библиотека действительно необязательная, т.е. вы можете скомпилироваться и без неё. Вам это не подходит.

    The following variants have been tried and rejected:
     
      * libboost_system-vc143-mt-gd-x32-1_82.lib (32 bit, need 64)
     
      * libboost_system-vc143-mt-gd-x64-1_82.lib (vc143, detected mgw7, set
      Boost_COMPILER to override)
     
      * libboost_system-vc143-mt-x32-1_82.lib (32 bit, need 64)
     
      * libboost_system-vc143-mt-x64-1_82.lib (vc143, detected mgw7, set
      Boost_COMPILER to override)


    Вам теперь надо либо собрать правильный Буст - с тем же компилятором, который вы используете в CLion - либо начать использовать Студийный компилятор в вашем проекте.
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth Тогда давайте попробуем в Boost_DIR указать ...../stage/lib/cmake/Boost-1.81.0, ну т.е. добавим в путь ещё Boost-1.81.0, ну или какая там у вас версия. И аналогично - если не будет работать и в этом случае, скиньте такие же логи пожалуйста
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth перед секцией Cache variables, где вы прописываете переменные, есть CMake options. Добавьте туда опцию --debug-find и приложите сюда выхлоп CMake.
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth
    и я не нашел boost-config.cmake

    BoostConfig.cmake тоже подойдёт, это два соглашения об именовании, CMake пытается найти по обоим. BoostConfig.cmake у вас как раз таки есть. Предположу что Буст собрался нормально.

    вот папка, CMakeCache , exe файл находится в src .

    Вот всю папку cmake-build-debug нужно снести и сгенерировать заново (я не знаю что там CLion должен сделать, возможно он и сам предложит сгенерировать автоматически. Главное удалите эту папку, чтобы наверняка всё перегенировалось сначала, и мы были уверены что дело не в CMake-кэше.

    https://www.jetbrains.com/help/clion/invalidate-ca...

    Это статья о чём-то совершенно ином, это не про CMake-кэши.
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth
    Скажите, а нужно ли было добавлять boost в PATH ?

    Нет.

    Содержимое директории выглядит адекватно, Буст собрался. У меня всё так же.

    Как почистить кэш , я точно не знаю

    С этим нужно разобраться, т.к. мы можем сейчас убивать кучу времени зря. Симейк у вас куда-то складывает те файлы, которые он генерирует перед тем, как запустить сборку (собирает кстати не сам Симейк, он генерит инструкции для другой сборочной системы, у вас это ninja вроде). Нужно разобраться, куда они складываются и почистить их. Можете найти где у вас exe-шник лежит, он должен лежать где-то в этой папке, которую нужно почистить.
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth покажите содержимое вашей директории stage/lib/cmake, путь к которой вы указали.
    Ну и на всякий случай почистите симейковский кэш и перегенерьте проект с нуля, если Буст действительно собрался как надо, очень странно что симейк ничего не находит
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth Нужно указать только мажорную и минорную версию, т.е. 1.81, а не 1.81.0
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth Я рекомендую использовать бустовские config-файлы для CMake, вместо встроенного в сам CMake find-модуля для Boost. Чтобы ими воспользоваться сделайте следующее:
    1. Соберите Буст, если ещё не сделали этого
    2. Там же, где ранее передавали переменную SFML_DIR, передайте Boost_DIR, в которой будет путь к подпапке `stage/lib/cmake`, например у меня так он выглядит: D:/Lib/C++/boost_1_82_0/stage/lib/cmake
    3. Добавьте такую инструкцию, указав вместо json нужные вам библиотеки через пробел:
    find_package(Boost 1.82 COMPONENTS json REQUIRED CONFIG)
    , ну и версию поменяйте на нужную вам.
    4. Вышеуказанная инструкция добавит вам таргет Boost::headers для всех header-only библиотек, и по одному таргету вида Boost::<имя_библиотеки> для каждой библиотеки из перечисленных вами. Например, у меня появился таргет Boost::json
    5. Добавьте в ваш исполняемый таргет нужные вам бустовые таргеты в target_link_libraries. Например, я поменял эту инструкцию в вашем коде и получил такой вариант:
    target_link_libraries(Course_Work sfml-graphics Boost::json)
    . У меня всё работает, json подключился успешно.
  • Есть ли статьи, которые приводят наглядные примеры того, как код на rust превосходит код на других языках?

    Я бы ещё добавил, что в C++ настолько много движущихся частей, в том числе всякого легаси, что как правило нужно знать кучу рецептов "как делать надо" и "как не надо". Все эти правила вроде правила трёх/пяти, тот же C++ Core Guidelines, где написано всякое вроде "деструктор должен быть либо публичным виртуальным, либо protected невиртуальным" и так далее.
    Разработчику приятно, когда атомарные элементы языка можно соединить в любых или почти любых комбинациях, и в каждой из них будет какой-то практический смысл. Ну или хотя бы такая комбинация элементов не отстрелит вам обе ноги. А в C++ вам нужно изучить как атомарные элементы, так и всякие комбинации, которые работоспособны. И "отстреливающие" комбинации (например, публичный НЕвиртуальный деструктор) тоже знать нужно.
    Rust - как минимум тупо новый язык, в котором можно было сделать сразу нормально. Выбросить лишнее. Выбросить нерабочие комбинации. Хоть он и очень отличается от C++, я всё равно его воспринимаю как "сделанный с нуля" C++, в плане занимаемой ниши и уровня абстракций.
  • Библиотека markdown файлов на персональном vps хостинге?

    Файлы можно редактировть в удобной форме.

    Вот тут подробнее.

    И подробнее про квалификацию тех, кто будет редактировать. И требуется ли версионирование?
    Потому что действительно похоже, что вам нужна Git-репа на каком-то из Git-сервисов (можно и свой поднять).
  • Актуальна ли на данный момент Desktop разработка на C# WPF?

    Андрей Пустовой если вы хотите ТОЧНО найти работу, лучше определённо веб, причём бэкенд (если вам интересен дотнет). На фронте дотнет тоже теперь существует в виде Blazor, но это пока слишком новая и довольно тяжеловесная технология для массового применения, врядли вы найдёте много вакансий с ней.

    Конкретно по десктопу советую особо не горевать:
    • гораздо важнее, что вы изучаете саму платформу, а не конкретно WPF. Да и врядли вы изучили WPF так же детально, как бывалый десктоп-разработчик, который пилил на нём 10 лет. Вы конечно сейчас пытаетесь экономить каждый день своего времени, вы молоды, хотите доказать что вы можете. Но переучиваться придётся постоянно, нужно уметь систематизировать знания и переиспользовать их;
    • в зависимости от города работа всё же может быть, в дефолт-сити десктопных вакансий на удивление много (например);
    • мало ли как пригодятся знания десктопа. Например сейчас, пока остальная команда пилит на Электроне, TypeScript и React, я занимаюсь инфраструктурой для Винды (нативные прослойки на C++, MSIX, автоматические обновления и вся эта хрень), и мне очень-очень сильно помогает весь мой дедовский опыт с Виндой как с десктопной ОС, и в частности опыт десктопной разработки;
  • Как сделать столкновение с врающейся фигурой SFML?

    Nipheris
    @Nipheris Куратор тега C++
    А в чём вопрос, собственно? Вы предлагаете подебажить ваш код и дописать ещё? Тогда это жалоба сразу же.
  • Какой вариант организации домашней виртуализации выбрать?

    Евгений Воробьев Ну вот я прямо сейчас как раз перед выбором - то ли на самом Proxmox-хосте организовать ZFS-пул, то ли поставить отдельной виртуалкой TrueNAS Core и целиком пробросить ей оба диска, чтобы хост вообще с ними не работал. Пока склоняюсь ко второму варианту, т.к. дома хочется нормальный интерфейс, мне ковыряния в конфигах и на работе хватает. Ну и может в таком виде будет легче перенести на отдельную железку в будущем, хотя по идее для самого пула разницы никакой не должно быть.
    Собирать это дело буду в конце следующей недели, могу рассказать когда заведётся.
    Соглашусь, что это будет не самое ресурсоэкономное решение, но мне сейчас важнее удобство. Да и вообще мне FreeBSD привычнее)) Proxmox использую из-за KVM и обёрточек, т.к. у bhyve сырая экосистема (и непонятно созреет ли она когда-нибудь) и у меня ума не хватило бы там всё настроить.
  • Какой вариант организации домашней виртуализации выбрать?

    CityCat4 В Proxmox есть возможности по созданию кластера и live-миграция машин, но своего опыта у меня пока нет, меня он интересует только в рамках одной машины (мне нужен был дистр с KVM под VFIO-сетап).
  • Как выстроить структуру проекта с использованием SFML + CMake?

    Nipheris
    @Nipheris Куратор тега C++
    a1nsworth Не могу ответить на первый ваш вопрос, потому что ничего в нём не понятно. Что такое "инклюдить библиотеки"? Инклюдится файл с исходным кодом (как правило это header-файл), который может быть частью какой-то библиотеки (стандартной библиотеки, библиотеки SFML, библиотеки ffmpeg), а может быть частью вашего проекта. Что такое "библиотеки добавлены в SFML"? SFML - это тоже библиотека. Что значит добавить одну библиотеку в другую? Я не знаю, может конечно в документации SFML такие термины используются, с SFML я не работал (совсем).

    target_include_directories, насчёт этого немного не понял, это для чего нужно и в какой CMake добавить ?

    давайте лучше я коммит сделаю как будет минутка, мне проще будет показать диффом
  • Как называется стандартная форма для MacOS?

    Для Windows используется стандартная реализация WinForms

    При чём тут Си и WinForms? А WinUI это стандартная или нет?