
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.90] |
![]() |
|
Страницы: (5) 1 [2] 3 4 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
С MSYS2, по мере установки, возникают проблемы:
Цитата error: failed retrieving file 'python-3.11.7-1-x86_64.pkg.tar.zst' from mirror.msys2.org : Failed to connect to fastmirror.pp.ua port 443 after 10011 ms: Timeout was reached error: failed retrieving file 'cppdap-1.58.0a-3-x86_64.pkg.tar.zst' from mirror.msys2.org : Connection timeout after 10000 ms error: failed retrieving file 'libarchive-3.7.2-1-x86_64.pkg.tar.zst' from mirror.msys2.org : Connection timeout after 10000 ms warning: too many errors from mirror.msys2.org, skipping for the remainder of this transaction error: failed retrieving file 'librhash-1.4.3-1-x86_64.pkg.tar.zst' from mirror.msys2.org : Connection timeout after 10000 ms Ни один пакет не установился без подобных ошибок, начиная с самой первой команды: pacman -Suy Как быть? Я в целом знаю как через VPN гулять по всяким ChatGPT, но вот обманывать установщики, которые напрямую лезут в инет - нас не учили ![]() Добавлено Цитата macomics @ Затем, что по заданию она должна компилироваться на linux. И вот тут косяк, если из-за как-то не учтенной особенности linux, не выученной своевременно, программа просто не сможет откомпилироваться. Мне не настолько нужна эта практика, чтобы ради неё делать слишком серьезные телодвижения ![]() ![]() Пока же попробую в винде. Не получится - да и фиг с ней, к лету еще конторы найдутся для практики. |
Сообщ.
#17
,
|
|
|
Цитата Eretic @ Ни один пакет не установился без подобных ошибок, начиная с самой первой команды: pacman -Suy Как быть? Я в целом знаю как через VPN гулять по всяким ChatGPT, но вот обманывать установщики, которые напрямую лезут в инет - нас не учили Явно с инетом большие проблемы ![]() Добавлено Цитата macomics @ Вот элементарный пример. Для взаимодействия предложили использовать socket. Но на Windows для работы с socket надо использовать WSAStartup и WSACleanup, которых нету в linux. Т.е. с виду работоспособный код для Windows под linux просто выдаст ошибку отсутствия функций. Лучше проблемы решать по мере их появления. Этого в задании пока не было. Зачем заранее тратить время на то, чего не просили. Вопрос риторический. |
Сообщ.
#18
,
|
|
|
Цитата Majestio @ Явно с инетом большие проблемы Мне кажется дело в другом: Failed to connect to fastmirror.pp.ua port 443 |
Сообщ.
#19
,
|
|
|
Тогда попробуйте способ с виртуальной машиной. Не знаю как долго вы будете скачивать 3-5 Гб образ linux, но обычно он успешно устанавливается за 20 минут на виртуальную машину. Будет у вас на Windows окошко с монитором виртуальной машины и там будете работать (при желании сможете сделать его на весь экран). Приложения на том же Ubuntu ставятся через магазин приложений - бесплатно. Там и найдете VS Code.
|
Сообщ.
#20
,
|
|
|
Цитата Eretic @ Ни один пакет не установился без подобных ошибок, начиная с самой первой команды: pacman -Suy Как быть? Я в целом знаю как через VPN гулять по всяким ChatGPT, но вот обманывать установщики, которые напрямую лезут в инет - нас не учили Вдогонку. MSYS2 использует пакетный менеджер от ArchLinux. Глянь эту статью. Можно попробовать поиграться с зеркалами. И да ... все варианты редактирования а-ля /etc/pacman.d/mirrorlist можно редактировать средствами винды (не обязательно из терминала MSYS2). Нужно только соблюдать правильные юниксовые переводы строк. Добавлено Цитата Eretic @ Мне кажется дело в другом: Failed to connect to fastmirror.pp.ua port 443 В таких случаях должны перебираться резервные хранилища ![]() Добавлено Если совсем не получается - поставь PlanetVPN на время установки. Он бесплатный без выбора сервера (что дадут). Потом удалишь или выключишь за ненадобностью. И да, самой первой командой в терминале MSYS2 сделай полное обновление: ![]() ![]() pacman -Syyuu |
Сообщ.
#21
,
|
|
|
С VPN поначалу тоже ошибки пошли:
![]() ![]() pacman -Syyuu :: Synchronizing package databases... clangarm64 429.2 KiB 391 KiB/s 00:01 [###############################] 100% mingw32 312.8 KiB 314 KiB/s 00:01 [###############################] 100% mingw64 476.9 KiB 431 KiB/s 00:01 [###############################] 100% ucrt64 485.4 KiB 459 KiB/s 00:01 [###############################] 100% clang32 306.2 KiB 295 KiB/s 00:01 [###############################] 100% clang64 476.5 KiB 1876 KiB/s 00:00 [###############################] 100% msys 484.4 KiB 1357 KiB/s 00:00 [###############################] 100% error: failed retrieving file 'clangarm64.db' from mirror.msys2.org : Resolving timed out after 10005 milliseconds error: failed retrieving file 'mingw32.db' from mirror.msys2.org : Connection time-out error: failed retrieving file 'mingw64.db' from mirror.msys2.org : Connection time-out warning: too many errors from mirror.msys2.org, skipping for the remainder of this transaction error: failed retrieving file 'ucrt64.db' from mirror.msys2.org : Connection time-out error: failed retrieving file 'clang32.db' from mirror.msys2.org : Connection time-out :: Starting core system upgrade... there is nothing to do :: Starting full system upgrade... there is nothing to do Правда уже без UA. И через минуту наконец-то заработало ![]() В процессе только одна ошибка и всплыла: ![]() ![]() $ pacman -S --noconfirm mingw-w64-i686-qt5 mingw-w64-i686-qt5-static mingw-w64-i686-qt5-doc error: target not found: mingw-w64-i686-qt5 error: target not found: mingw-w64-i686-qt5-doc Надеюсь не критично. Ну всё, завтра настрою и опробую. |
Сообщ.
#22
,
|
|
|
Сообщ.
#23
,
|
|
|
Можно поставить эмулятор и в нём работать. я использую VirtualBox + Fedora - отлично работает. Для "Убинты" пришлось gcc отдельно устанавливать, а в Федору сразу всё было встроено. Добавлено Цитата Eretic @ 1) потоки в C++ создаются через std::thread? 2) Потоком можно сделать класс? Точнее экземпляр класса? Есть какие то тонкости? 3) какие стандартные средства есть для синхронизации доступа к данным между потоками? Просто я в винде всю жизнь использовал мьютексы и семафоры, а вот что есть в ++ даже не представляю. 1) в Линуксе я использовал "pthread_create" и другие функции из <pthread.h> 2) Да. Только так и работаю. Сделал базовый класс-поток, в котором виртуальная потоковая процедура - член класса. В библиотеку его, поскольку он полезен. Класс-поток конкретного проекта является наследником базового класса. 3) Любые средства, какие есть в Линуксе. Те же семафоры. Тут лучше книги почитать. Лично я привык пользоваться критическими секциями, а в Линуксе я их не нашёл. Поэтому сделал класс "критическая секция" из семафора. Добавлено Цитата Eretic @ 4) основная проблема: как передать данные из одной программы в другую, чтобы работало и на винде и на линуксе? Если необходимо такое, тогда можно попытаться освоить кросс-платформенную библиотеку. Вообще многое можно использовать. Файлы, сокеты итд. Книги надо читать. |
Сообщ.
#24
,
|
|
|
Я бы начал с проблемы "как из всех запущенных копий другой программы выбрать нужную, в которую хотим прередать".
|
Сообщ.
#25
,
|
|
|
Спасибо ребята.
Но пока, будете смеяться, никак не запущу поток. Выскакивает ошибка: ![]() ![]() D:\Dev\Projects\CPP\Work\main.cpp:20:10: error: 'thread' is not a member of 'std' 20 | std::thread th(input_thread); #include <thread> подключилось без проблем. И какого дьявола gcc нужно? |
Сообщ.
#26
,
|
|
|
А как вы собираете: через gcc или g++?
|
Сообщ.
#27
,
|
|
|
Разница только в том, что gcc выдаёт на одну ошибку больше:
![]() ![]() D:\Dev\Projects\CPP\Work\main.cpp:20:10: error: 'thread' is not a member of 'std' 20 | std::thread th(input_thread); | ^~~~~~ D:\Dev\Projects\CPP\Work\main.cpp:4:1: note: 'std::thread' is defined in header '<thread>'; did you forget to '#include <thread>'? 3 | #include <vector> +++ |+#include <thread> 4 | #include <string> #include <thread> разумеется присутствует. Похоже сборка криво встала, уже в который раз. Буду делать на каком-нибудь C++ под винду. И надеюсь скомпилируется у них на gcc. А нет, так и чёрт с ними, итак целый день убил на бесконечную переустановку gcc ![]() |
Сообщ.
#28
,
|
|
|
Eretic, сделал тебе пример. Попробуй у себя ...
Создай подкаталог для проекта, например: ~/dev/projects/test-threads Создай в нем три файла: test-threads.cpp ![]() ![]() #include <iostream> #include <thread> #include <chrono> void printWithDelay(int id, double delay) { for (int i = 0; i < 5; ++i) { std::this_thread::sleep_for(std::chrono::milliseconds(static_cast<int>(delay * 1000))); std::cout << "Thread [" << id << "] wrote: " << i << std::endl; } } int main() { std::thread t1(printWithDelay, 1, 0.5); std::thread t2(printWithDelay, 2, 0.6); std::thread t3(printWithDelay, 3, 0.7); t1.join(); t2.join(); t3.join(); return 0; } CMakeLists.txt ![]() ![]() cmake_minimum_required(VERSION 3.0) project(TestThreads) set(CMAKE_CXX_STANDARD 11) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") add_executable(test-threads test-threads.cpp) build.sh ![]() ![]() #!/usr/bin/sh export PATH=/clang64/bin:$PATH mkdir build cd build cmake -G Ninja .. ninja Запусти сборку: ![]() ![]() sh build.sh Если все пройдет нормально, то в каталоге проекта появится подкаталог build, а в нем исполняемый файл. Если ninja не найден - установи его. Посмотреть варианты и что установлено: ![]() ![]() pacman -Ss ninja Установить, например, clang64/mingw-w64-clang-x86_64-ninja: ![]() ![]() pacman -S clang64/mingw-w64-clang-x86_64-ninja И да, все манипуляции производятся в терминальном окне MSYS2. И не забывай - в Linux и вообще в *nix названия файлов и каталогов - регистрозависимые. |
Сообщ.
#29
,
|
|
|
Сообщ.
#30
,
|
|
|
![]() ![]() build.sh: line 7: cmake: command not found Сейчас переустановлю переустановлю... Добавлено ![]() ![]() $ sh build.sh mkdir: cannot create directory ‘build’: File exists CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:2 (project): No CMAKE_C_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. CMake Error at CMakeLists.txt:2 (project): No CMAKE_CXX_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. -- Configuring incomplete, errors occurred! ninja: error: loading 'build.ninja': ═х єфрхЄё эрщЄш єърчрээ√щ Їрщы. ![]() ![]() Andrey@DESKTOP-8J6CIOK MSYS /D/Dev/Projects/CPP/Work $ pacman -Ss ninja clangarm64/mingw-w64-clang-aarch64-cninja 3.7.9-1 cninja, an opinionated cmake config manager clangarm64/mingw-w64-clang-aarch64-gn 0.2131.85944ebc-1 Meta-build system that generates build files for Ninja (mingw-w64) clangarm64/mingw-w64-clang-aarch64-ninja 1.11.1-3 Ninja is a small build system with a focus on speed (mingw-w64) mingw32/mingw-w64-i686-cninja 3.7.9-1 cninja, an opinionated cmake config manager mingw32/mingw-w64-i686-ninja 1.11.1-3 Ninja is a small build system with a focus on speed (mingw-w64) mingw64/mingw-w64-x86_64-cninja 3.7.9-1 cninja, an opinionated cmake config manager mingw64/mingw-w64-x86_64-gn 0.2131.85944ebc-1 Meta-build system that generates build files for Ninja (mingw-w64) mingw64/mingw-w64-x86_64-ninja 1.11.1-3 Ninja is a small build system with a focus on speed (mingw-w64) ucrt64/mingw-w64-ucrt-x86_64-cninja 3.7.9-1 cninja, an opinionated cmake config manager ucrt64/mingw-w64-ucrt-x86_64-gn 0.2131.85944ebc-1 Meta-build system that generates build files for Ninja (mingw-w64) ucrt64/mingw-w64-ucrt-x86_64-ninja 1.11.1-3 Ninja is a small build system with a focus on speed (mingw-w64) clang32/mingw-w64-clang-i686-cninja 3.7.9-1 cninja, an opinionated cmake config manager clang32/mingw-w64-clang-i686-ninja 1.11.1-3 Ninja is a small build system with a focus on speed (mingw-w64) clang64/mingw-w64-clang-x86_64-cninja 3.7.9-1 cninja, an opinionated cmake config manager clang64/mingw-w64-clang-x86_64-gn 0.2131.85944ebc-1 Meta-build system that generates build files for Ninja (mingw-w64) clang64/mingw-w64-clang-x86_64-ninja 1.11.1-3 [installed] Ninja is a small build system with a focus on speed (mingw-w64) msys/ninja 1.11.1-1 Ninja is a small build system with a focus on speed msys/ninja-emacs 1.11.1-1 Ninja is a small build system with a focus on speed (Emacs mode) msys/ninja-vim 1.11.1-1 Ninja is a small build system with a focus on speed (vim mode) Это уже MSYS2 с оф. сайта установлена. |