J'essaie de créer des redis sur mon serveur aws linux afin d'accéder à redis-cli et de me connecter à mon instance redis qui fonctionne également avec succès dans aws.
mon gcc est:
gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
J'ai téléchargé la source et commencé la construction:
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make distclean
make
Il a construit les dépendances et m'a ensuite donné ceci:
gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tsd.o src/tsd.c
gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/witness.o src/witness.c
ar crus lib/libjemalloc.a src/jemalloc.o src/arena.o src/background_thread.o src/base.o src/bin.o src/bitmap.o src/ckh.o src/ctl.o src/div.o src/extent.o src/extent_dss.o src/extent_mmap.o src/hash.o src/hooks.o src/large.o src/log.o src/malloc_io.o src/mutex.o src/mutex_pool.o src/nstime.o src/pages.o src/prng.o src/prof.o src/rtree.o src/stats.o src/sz.o src/tcache.o src/ticker.o src/tsd.o src/witness.o
make[3]: Leaving directory `/home/ec2-user/redis-stable/deps/jemalloc'
make[2]: Leaving directory `/home/ec2-user/redis-stable/deps'
CC adlist.o
CC quicklist.o
CC ae.o
CC anet.o
CC dict.o
CC server.o
In file included from server.c:30:0:
server.h:1044:5: error: expected specifier-qualifier-list before ‘_Atomic’
_Atomic unsigned int lruclock; /* Clock for LRU eviction */
^
server.c: In function ‘serverLogRaw’:
server.c:1028:31: error: ‘struct redisServer’ has no member named ‘logfile’
int log_to_stdout = server.logfile[0] == '\0';
^
server.c:1031:23: error: ‘struct redisServer’ has no member named ‘verbosity’
if (level < server.verbosity) return;
^
server.c:1033:47: error: ‘struct redisServer’ has no member named ‘logfile’
fp = log_to_stdout ? stdout : fopen(server.logfile,"a");
...et beaucoup plus
Je suppose que j'ai dû faire quelque chose de mal car c'est du code qui se construit sans aucun doute pour tout le monde. Je suis un Java avec peu ou pas de fond en C. Tous les pointeurs seront appréciés.
Geai
Apparaît que gcc> = 4.9 est requis pour construire redis 6x ...
Merci pour les réponses. La solution avec laquelle j'ai abouti était de construire un nouveau serveur avec CentOS8 et gcc 8.3.1. Cette combinaison a construit le serveur redis 6.0.3 sans aucun problème. Morale: vous devez avoir des infra et des logiciels à jour afin de construire correctement de nouveaux logiciels.
j'ai réussi. au début, je veux installer gcc6, mais j'ai échoué à nouveau et encore, puis je remarque que devtoolset-6 est obsolète. Vous devriez peut-être essayer -7 ou -8.
puis j'utilise le flow cmd et cela a fonctionné
yum install -y devtoolset-6-gcc devtoolset-7-gcc-c++
alors j'espère que cela peut aussi vous aider