Хотел я значит установить Anbox, но т.к у меня дистр без системг, то при сборке пакета paru жаловался на недостоющую зависимость lib-systemd
. Нашёл анбокс без системг, но он отказывается компилироватся. Вот ошибка компиляции:
/home/khomyak/artix_pkg/anbox-nosystemd-git/src/anbox/external/process-cpp-minimal/include/core/posix/linux/proc/process/oom_adj.h:28:11: ошибка: expected identifier before numeric constant
28 | namespace linux
| ^~~~~
/home/khomyak/artix_pkg/anbox-nosystemd-git/src/anbox/external/process-cpp-minimal/include/core/posix/linux/proc/process/oom_adj.h:28:11: ошибка: expected unqualified-id before numeric constant
/home/khomyak/artix_pkg/anbox-nosystemd-git/src/anbox/external/process-cpp-minimal/src/core/posix/linux/proc/process/oom_adj.cpp:33:11: ошибка: expected identifier before numeric constant
33 | namespace linux
| ^~~~~
/home/khomyak/artix_pkg/anbox-nosystemd-git/src/anbox/external/process-cpp-minimal/src/core/posix/linux/proc/process/oom_adj.cpp:33:11: ошибка: expected unqualified-id before numeric constant
make[2]: *** [external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/build.make:230: external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/core/posix/linux/proc/process/oom_adj.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:1164: external/process-cpp-minimal/src/CMakeFiles/process-cpp.dir/all] Ошибка 2
make: *** [Makefile:146: all] Ошибка 2
make: выход из каталога «/home/khomyak/artix_pkg/anbox-nosystemd-git/src/build»
Все зависимости установлены, CPU имеет необходимые инструкции. Предпологаю, что дело в разных версиях c++. У разраба она одна была, а у меня другая. Также мне пришлось немного изменить PKGBUILD, добавив -DCMAKE_CXX_STANDARD=14
.
Вывод терминала без этого флага:
In file included from /usr/include/gtest/gtest-message.h:57,
from /usr/include/gtest/gtest-assertion-result.h:46,
from /usr/include/gtest/gtest.h:64,
from /home/khomyak/artix_pkg/anbox-nosystemd-git/src/anbox/external/android-emugl/shared/emugl/common/mutex_unittest.cpp:19:
/usr/include/gtest/internal/gtest-port.h:270:2: ошибка: #error C++ versions less than C++14 are not supported.
270 | #error C++ versions less than C++14 are not supported.
| ^~~~~
In file included from /usr/include/gtest/gtest-printers.h:115,
from /usr/include/gtest/gtest-matchers.h:48,
from /usr/include/gtest/internal/gtest-death-test-internal.h:47,
from /usr/include/gtest/gtest-death-test.h:43,
from /usr/include/gtest/gtest.h:65:
/usr/include/gtest/internal/gtest-internal.h:636:58: ошибка: неправильное число аргументов шаблона (0, а должно быть 1)
636 | typedef ::std::map<std::string, CodeLocation, std::less<>> RegisteredTestsMap;
| ^
In file included from /usr/include/c++/12.2.1/string:48,
from /usr/include/c++/12.2.1/bits/locale_classes.h:40,
from /usr/include/c++/12.2.1/bits/ios_base.h:41,
from /usr/include/c++/12.2.1/iomanip:40,
from /usr/include/gtest/gtest.h:54:
/usr/include/c++/12.2.1/bits/stl_function.h:403:12: замечание: предоставлено для «template<class _Tp> struct std::less»
403 | struct less : public binary_function<_Tp, _Tp, bool>
| ^~~~
/usr/include/gtest/internal/gtest-internal.h:636:59: ошибка: некорректный аргумент шаблона 3
636 | typedef ::std::map<std::string, CodeLocation, std::less<>> RegisteredTestsMap;
| ^~
/usr/include/gtest/internal/gtest-internal.h: В функции-члене «bool testing::internal::TypedTestSuitePState::AddTestName(const char*, int, const char*, const char*)»:
/usr/include/gtest/internal/gtest-internal.h:613:23: ошибка: запрос элемента «insert» в «((testing::internal::TypedTestSuitePState*)this)->testing::internal::TypedTestSuitePState::registered_tests_», имеющего не классовый тип «testing::internal::TypedTestSuitePState::RegisteredTestsMap» {aka «int»}
613 | registered_tests_.insert(
| ^~~~~~
/usr/include/gtest/internal/gtest-internal.h: В функции-члене «bool testing::internal::TypedTestSuitePState::TestExists(const std::string&) const»:
/usr/include/gtest/internal/gtest-internal.h:619:30: ошибка: запрос элемента «count» в «((const testing::internal::TypedTestSuitePState*)this)->testing::internal::TypedTestSuitePState::registered_tests_», имеющего не классовый тип «const testing::internal::TypedTestSuitePState::RegisteredTestsMap» {aka «const int»}
619 | return registered_tests_.count(test_name) > 0;
| ^~~~~
/usr/include/gtest/internal/gtest-internal.h: В функции-члене «const testing::internal::CodeLocation& testing::internal::TypedTestSuitePState::GetCodeLocation(const std::string&) const»:
/usr/include/gtest/internal/gtest-internal.h:623:40: ошибка: qualified-id in declaration before «it»
623 | RegisteredTestsMap::const_iterator it = registered_tests_.find(test_name);
| ^~
/usr/include/gtest/internal/gtest-internal.h:624:5: ошибка: «it» was not declared in this scope; did you mean «int»?
624 | GTEST_CHECK_(it != registered_tests_.end());
| ^~~~~~~~~~~~
/usr/include/gtest/internal/gtest-internal.h:624:5: ошибка: запрос элемента «end» в «((const testing::internal::TypedTestSuitePState*)this)->testing::internal::TypedTestSuitePState::registered_tests_», имеющего не классовый тип «const testing::internal::TypedTestSuitePState::RegisteredTestsMap» {aka «const int»}
624 | GTEST_CHECK_(it != registered_tests_.end());
| ^~~~~~~~~~~~
/usr/include/gtest/internal/gtest-internal.h:625:12: ошибка: «it» was not declared in this scope; did you mean «int»?
625 | return it->second;
| ^~
| int
make[2]: *** [external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/build.make:146: external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/mutex_unittest.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:1326: external/android-emugl/shared/emugl/common/CMakeFiles/emugl_common.dir/all] Ошибка 2
make: *** [Makefile:146: all] Ошибка 2
make: выход из каталога «/home/khomyak/artix_pkg/anbox-nosystemd-git/src/build»