C++コードのコンパイル中にこのエラーを取得:
undefined reference to `__stack_chk_fail'
すでに試したオプション:
詳細なエラー:
/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'**
以前は、そのようなエラーが数十件発生していました。私が使用しているプリコンパイル済みライブラリのgcc
と、コードのコンパイルに使用していたgcc
バージョンの間にバージョンの不一致があることがわかりました。 gcc
を更新しました。これらのエラーは2つしか発生しません。
何か助けてください?
libgurobi_c ++。aは-fno-stack-protectorでコンパイルされました(明らかに)。
いくつかのことが頭に浮かびます:
Gentooでは同じ問題があり、2つのファイルの作成を解決しました。 1つ目は、emergeによって解析されてgccに渡されるオプションを含みます。
/etc/portage/env/nostackprotector.conf
CFLAGS="-fno-stack-protector -O2"
2番目は、どのパッケージがこの設定を使用する必要があるかを示しています。
/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
言う:
「これは通常、ビルド中にリンクを実行するためにgccではなくldを呼び出した結果です」
これは、libjpegのMakefileを手動で変更したときに遭遇したものです。 ldの代わりにgccを使用して問題を解決しました。