Obtenir cette erreur lors de la compilation du code C++:
undefined reference to `__stack_chk_fail'
Options déjà essayées:
Erreur détaillée:
/u/ac/alanger/gurobi/gurobi400/linux64/lib/libgurobi_c++.a(Env.o)(.text+0x1034): In function `GRBEnv::getPar/u/ac/alanger/gurobi/gurobi400/linux64/lib/libgurobi_c++.a(Env.o)(.text+0x1034): In function `GRBEnv::getParamInfo(GRB_StringParam, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
: undefined reference to `__stack_chk_fail'
amInfo(GRB_StringParam, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
: **undefined reference to `__stack_chk_fail'**
Plus tôt, j'avais 10 ans de telles erreurs. Nous avons découvert qu'il existait une incompatibilité de version entre gcc
des bibliothèques précompilées que j'utilise et la version gcc
que j'utilisais pour compiler le code. Mis à jour gcc
et maintenant je ne reçois que 2 de ces erreurs.
Toute aide, s'il vous plaît?
libgurobi_c ++. a a été compilé avec -fno-stack-protector (évidemment).
Quelques points me viennent à l’esprit:
Sous gentoo, j'ai eu le même problème et j'ai résolu de créer 2 fichiers. La première contient l’option à analyser par emerge et transmise à gcc:
/etc/portage/env/nostackprotector.conf
CFLAGS="-fno-stack-protector -O2"
Et le second indique quel paquet doit utiliser ces paramètres:
/etc/portage/package.env/nostackprotector
x11-libs/vte nostackprotector.conf
sys-libs/glibc nostackprotector.conf
www-client/chromium nostackprotector.conf
app-admin/Sudo nostackprotector.conf
https://wiki.ubuntu.com/ToolChain/CompilerFlags
dit:
"Habituellement, cela est dû à l'appel de ld au lieu de gcc lors d'une construction pour effectuer la liaison"
C'est ce que j'ai rencontré lors de la modification manuelle du Makefile de libjpeg. Utiliser gcc au lieu de ld a résolu le problème.