g810-led
g810-led copied to clipboard
g810-led does not compile with gcc13.1.1 using AUR pkgbuild on Archlinux
as per title, on archlinux using the AUR pkgbuild the app does not compile..
see also this recent comment in the AUR page...
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/13.1.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,objc,obj-c++ --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.1.1 20230429 (GCC)
=> Making package: g810-led-git 0.4.3.r1.efa3c35-1 (dom 7 mag 2023, 20:51:18)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Updating g810-led git repo...
==> Validating source files with sha256sums...
g810-led ... Skipped
==> Extracting sources...
-> Creating working copy of g810-led git repo...
Reset branch 'makepkg'
==> Removing existing $pkgdir/ directory...
==> Starting build()...
g++ -Dhidapi -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -std=gnu++11 -DVERSION=\"0.4.3\" -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now src/main.cpp src/helpers/help.cpp src/helpers/utils.cpp src/classes/Keyboard.cpp -o bin/g810-led -lhidapi-hidraw
In file included from src/main.cpp:23:
src/helpers/help.h:24:14: warning: elaborated-type-specifier for a scoped enum must not use the ‘class’ keyword
24 | enum class KeyboardFeatures : uint16_t {
| ~~~~ ^~~~~
| -----
src/helpers/help.h:24:37: error: found ‘:’ in nested-name-specifier, expected ‘::’
24 | enum class KeyboardFeatures : uint16_t {
| ^
| ::
src/helpers/help.h:24:20: error: ‘KeyboardFeatures’ has not been declared
24 | enum class KeyboardFeatures : uint16_t {
| ^~~~~~~~~~~~~~~~
src/helpers/help.h:24:48: error: expected unqualified-id before ‘{’ token
24 | enum class KeyboardFeatures : uint16_t {
| ^
src/helpers/help.h:59:16: error: ‘KeyboardFeatures’ does not name a type
59 | inline KeyboardFeatures operator|(KeyboardFeatures a, KeyboardFeatures b);
| ^~~~~~~~~~~~~~~~
src/helpers/help.h:61:9: error: ‘KeyboardFeatures’ does not name a type
61 | KeyboardFeatures getKeyboardFeatures(std::string cmdName);
| ^~~~~~~~~~~~~~~~
In file included from src/helpers/help.cpp:17:
src/helpers/help.h:24:14: warning: elaborated-type-specifier for a scoped enum must not use the ‘class’ keyword
24 | enum class KeyboardFeatures : uint16_t {
| ~~~~ ^~~~~
| -----
src/helpers/help.h:24:37: error: found ‘:’ in nested-name-specifier, expected ‘::’
24 | enum class KeyboardFeatures : uint16_t {
| ^
| ::
src/helpers/help.h:24:20: error: ‘KeyboardFeatures’ has not been declared
24 | enum class KeyboardFeatures : uint16_t {
| ^~~~~~~~~~~~~~~~
src/helpers/help.h:24:48: error: expected unqualified-id before ‘{’ token
24 | enum class KeyboardFeatures : uint16_t {
| ^
src/helpers/help.h:59:16: error: ‘KeyboardFeatures’ does not name a type
59 | inline KeyboardFeatures operator|(KeyboardFeatures a, KeyboardFeatures b);
| ^~~~~~~~~~~~~~~~
src/helpers/help.h:61:9: error: ‘KeyboardFeatures’ does not name a type
61 | KeyboardFeatures getKeyboardFeatures(std::string cmdName);
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:27:16: error: ‘KeyboardFeatures’ does not name a type
27 | inline KeyboardFeatures operator|(KeyboardFeatures a, KeyboardFeatures b) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:31:9: error: ‘KeyboardFeatures’ does not name a type
31 | KeyboardFeatures getKeyboardFeatures(string cmdName) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp: In function ‘void help::usage(char*)’:
src/helpers/help.cpp:48:17: error: ‘KeyboardFeatures’ was not declared in this scope
48 | KeyboardFeatures features = getKeyboardFeatures(cmdName);
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:55:21: error: ‘features’ was not declared in this scope
55 | if((features | KeyboardFeatures::setall) == features)
| ^~~~~~~~
src/helpers/help.cpp:55:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
55 | if((features | KeyboardFeatures::setall) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:57:21: error: ‘features’ was not declared in this scope
57 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~
src/helpers/help.cpp:57:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
57 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:59:21: error: ‘features’ was not declared in this scope
59 | if((features | KeyboardFeatures::setkey) == features)
| ^~~~~~~~
src/helpers/help.cpp:59:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
59 | if((features | KeyboardFeatures::setkey) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:61:21: error: ‘features’ was not declared in this scope
61 | if((features | KeyboardFeatures::setregion) == features)
| ^~~~~~~~
src/helpers/help.cpp:61:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
61 | if((features | KeyboardFeatures::setregion) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:63:21: error: ‘features’ was not declared in this scope
63 | if((features | KeyboardFeatures::gkeys) == features) {
| ^~~~~~~~
src/helpers/help.cpp:63:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
63 | if((features | KeyboardFeatures::gkeys) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:70:21: error: ‘features’ was not declared in this scope
70 | if((features | KeyboardFeatures::commit) == features) {
| ^~~~~~~~
src/helpers/help.cpp:70:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
70 | if((features | KeyboardFeatures::commit) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:71:40: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
71 | if((features | KeyboardFeatures::setall) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:73:40: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
73 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:75:40: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
75 | if((features | KeyboardFeatures::setkey) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:81:21: error: ‘features’ was not declared in this scope
81 | if((features | KeyboardFeatures::userstoredlighting) == features)
| ^~~~~~~~
src/helpers/help.cpp:81:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
81 | if((features | KeyboardFeatures::userstoredlighting) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:90:21: error: ‘features’ was not declared in this scope
90 | if((features | KeyboardFeatures::poweronfx) == features) {
| ^~~~~~~~
src/helpers/help.cpp:90:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
90 | if((features | KeyboardFeatures::poweronfx) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:94:21: error: ‘features’ was not declared in this scope
94 | if((features | KeyboardFeatures::onboardmode) == features) {
| ^~~~~~~~
src/helpers/help.cpp:94:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
94 | if((features | KeyboardFeatures::onboardmode) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:113:21: error: ‘features’ was not declared in this scope
113 | if((features | KeyboardFeatures::rgb) == features)
| ^~~~~~~~
src/helpers/help.cpp:113:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
113 | if((features | KeyboardFeatures::rgb) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:115:21: error: ‘features’ was not declared in this scope
115 | if((features | KeyboardFeatures::intensity) == features)
| ^~~~~~~~
src/helpers/help.cpp:115:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
115 | if((features | KeyboardFeatures::intensity) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:117:21: error: ‘features’ was not declared in this scope
117 | if((features | KeyboardFeatures::setregion) == features)
| ^~~~~~~~
src/helpers/help.cpp:117:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
117 | if((features | KeyboardFeatures::setregion) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:123:21: error: ‘features’ was not declared in this scope
123 | if((features | KeyboardFeatures::setkey) == features)
| ^~~~~~~~
src/helpers/help.cpp:123:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
123 | if((features | KeyboardFeatures::setkey) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:125:21: error: ‘features’ was not declared in this scope
125 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~
src/helpers/help.cpp:125:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
125 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp: In function ‘void help::keys(char*)’:
src/helpers/help.cpp:135:17: error: ‘KeyboardFeatures’ was not declared in this scope
135 | KeyboardFeatures features = getKeyboardFeatures(cmdName);
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:142:21: error: ‘features’ was not declared in this scope
142 | if((features | KeyboardFeatures::logo1) == features)
| ^~~~~~~~
src/helpers/help.cpp:142:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
142 | if((features | KeyboardFeatures::logo1) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:144:21: error: ‘features’ was not declared in this scope
144 | if((features | KeyboardFeatures::setindicators) == features)
| ^~~~~~~~
src/helpers/help.cpp:144:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
144 | if((features | KeyboardFeatures::setindicators) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:146:21: error: ‘features’ was not declared in this scope
146 | if((features | KeyboardFeatures::gkeys) == features)
| ^~~~~~~~
src/helpers/help.cpp:146:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
146 | if((features | KeyboardFeatures::gkeys) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:150:21: error: ‘features’ was not declared in this scope
150 | if((features | KeyboardFeatures::multimedia) == features)
| ^~~~~~~~
src/helpers/help.cpp:150:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
150 | if((features | KeyboardFeatures::multimedia) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:153:21: error: ‘features’ was not declared in this scope
153 | if((features | KeyboardFeatures::numpad) == features)
| ^~~~~~~~
src/helpers/help.cpp:153:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
153 | if((features | KeyboardFeatures::numpad) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:160:21: error: ‘features’ was not declared in this scope
160 | if((features | KeyboardFeatures::logo1) == features) {
| ^~~~~~~~
src/helpers/help.cpp:160:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
160 | if((features | KeyboardFeatures::logo1) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:163:40: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
163 | if((features | KeyboardFeatures::logo2) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:168:21: error: ‘features’ was not declared in this scope
168 | if((features | KeyboardFeatures::setindicators) == features) {
| ^~~~~~~~
src/helpers/help.cpp:168:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
168 | if((features | KeyboardFeatures::setindicators) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:178:21: error: ‘features’ was not declared in this scope
178 | if((features | KeyboardFeatures::gkeys) == features) {
| ^~~~~~~~
src/helpers/help.cpp:178:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
178 | if((features | KeyboardFeatures::gkeys) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:200:21: error: ‘features’ was not declared in this scope
200 | if((features | KeyboardFeatures::multimedia) == features) {
| ^~~~~~~~
src/helpers/help.cpp:200:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
200 | if((features | KeyboardFeatures::multimedia) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:217:21: error: ‘features’ was not declared in this scope
217 | if((features | KeyboardFeatures::numpad) == features) {
| ^~~~~~~~
src/helpers/help.cpp:217:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
217 | if((features | KeyboardFeatures::numpad) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:243:21: error: ‘features’ was not declared in this scope
243 | if((features | KeyboardFeatures::setkey) == features) {
| ^~~~~~~~
src/helpers/help.cpp:243:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
243 | if((features | KeyboardFeatures::setkey) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp: In function ‘void help::effects(char*)’:
src/helpers/help.cpp:271:17: error: ‘KeyboardFeatures’ was not declared in this scope
271 | KeyboardFeatures features = getKeyboardFeatures(cmdName);
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:279:21: error: ‘features’ was not declared in this scope
279 | if((features | KeyboardFeatures::userstoredlighting) == features) {
| ^~~~~~~~
src/helpers/help.cpp:279:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
279 | if((features | KeyboardFeatures::userstoredlighting) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:294:21: error: ‘features’ was not declared in this scope
294 | if((features | KeyboardFeatures::logo1) == features)
| ^~~~~~~~
src/helpers/help.cpp:294:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
294 | if((features | KeyboardFeatures::logo1) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:298:21: error: ‘features’ was not declared in this scope
298 | if((features | KeyboardFeatures::rgb) == features)
| ^~~~~~~~
src/helpers/help.cpp:298:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
298 | if((features | KeyboardFeatures::rgb) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:300:37: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
300 | else if((features | KeyboardFeatures::rgb) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp: In function ‘void help::samples(char*)’:
src/helpers/help.cpp:311:17: error: ‘KeyboardFeatures’ was not declared in this scope
311 | KeyboardFeatures features = getKeyboardFeatures(cmdName);
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:317:21: error: ‘features’ was not declared in this scope
317 | if((features | KeyboardFeatures::setkey) == features)
| ^~~~~~~~
src/helpers/help.cpp:317:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
317 | if((features | KeyboardFeatures::setkey) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:319:21: error: ‘features’ was not declared in this scope
319 | if((features | KeyboardFeatures::setall) == features)
| ^~~~~~~~
src/helpers/help.cpp:319:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
319 | if((features | KeyboardFeatures::setall) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:321:21: error: ‘features’ was not declared in this scope
321 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~
src/helpers/help.cpp:321:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
321 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:323:21: error: ‘features’ was not declared in this scope
323 | if((features | KeyboardFeatures::setregion) == features)
| ^~~~~~~~
src/helpers/help.cpp:323:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
323 | if((features | KeyboardFeatures::setregion) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:331:21: error: ‘features’ was not declared in this scope
331 | if((features | KeyboardFeatures::poweronfx) == features)
| ^~~~~~~~
src/helpers/help.cpp:331:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
331 | if((features | KeyboardFeatures::poweronfx) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:334:21: error: ‘features’ was not declared in this scope
334 | if((features | KeyboardFeatures::onboardmode) == features)
| ^~~~~~~~
src/helpers/help.cpp:334:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
334 | if((features | KeyboardFeatures::onboardmode) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:337:21: error: ‘features’ was not declared in this scope
337 | if((features | KeyboardFeatures::commit) == features) {
| ^~~~~~~~
src/helpers/help.cpp:337:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
337 | if((features | KeyboardFeatures::commit) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:339:40: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
339 | if((features | KeyboardFeatures::setall) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:341:40: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
341 | if((features | KeyboardFeatures::setgroup) == features)
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:343:40: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
343 | if((features | KeyboardFeatures::setkey) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:353:21: error: ‘features’ was not declared in this scope
353 | if((features | KeyboardFeatures::intensity) == features) {
| ^~~~~~~~
src/helpers/help.cpp:353:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
353 | if((features | KeyboardFeatures::intensity) == features) {
| ^~~~~~~~~~~~~~~~
src/helpers/help.cpp:360:21: error: ‘features’ was not declared in this scope
360 | if((features | KeyboardFeatures::setkey) == features) {
| ^~~~~~~~
src/helpers/help.cpp:360:32: error: ‘KeyboardFeatures’ is not a class, namespace, or enumeration
360 | if((features | KeyboardFeatures::setkey) == features) {
| ^~~~~~~~~~~~~~~~
make: *** [makefile:35: bin/g810-led] Error 1
==> ERROR: A failure occurred in build().
Aborting...
Same error here
I got the same error. There seems to be a missing #include <cstdint>
in src/helpers/help.h
. After adding it in the downloaded source the make
command runs fine. When using makepkg
on Arch Linux, the -e
switch uses the modified sources without redownloading. So the solution for me was:
- Download from AUR
- Modifiy
g810-led/src/g810-led-0.4.3/src/helpers/help.h
by adding#include <cstdint>
(e.g. in front of the#include <iostream>
) -
$ makepkg -e
-
$ pacman -U *.zst
Edit: There is already a pull request from another user with the same solution.
Would be closed by #302 (for cross-ref purposes)
I have successfully installed this software in archlinux either by modifying a line in src/helpers/help.h
like this
- enum class KeyboardFeatures : uint16_t {
+ enum KeyboardFeatures {
Or (in case that is needed and works in other systems) by modifying that line in the build process from the PKGBUILD script like this:
build() {
cd "${_githubrepo}-${pkgver}"
+ sed 's/enum class KeyboardFeatures : uint16_t {/enum KeyboardFeatures {/' src/helpers/help.h
make bin
}
Which way is less conflictive?