問題タブ [libgcc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - gcc は欠落している sys/cdefs.h をコンパイルしません
armhf 組み込みデバイスで gcc をコンパイルしようとしていますが、xgcc で libgcc をコンパイルしようとすると、sys/cdefs.h が見つからないと言って停止します。
libc6 と libc6-dev は既にインストールされており、cdefs.h は /usr/arm-linux-gnueabihf/sys/ にあります。
/usr/arm-linux-gnueabihf を xgcc インクルード パスに追加するにはどうすればよいですか?
c++ - GCC 4.8 アプリケーションで GCC 4.4 ライブラリを使用する
アプリケーションを作成しており、rhel7 で GCC 4.8 を使用したいと考えています。私の問題は、rhel6 上に構築された GCC 4.4 を使用して構築されたサードパーティの共有ライブラリを使用する必要があることです。
octave - libgcc_s_dw2-1.dll にエラーが含まれています
Windows 10 プラットフォームで約 1 年間、Octave 4.03 を使用しています。いつものように Octave GUI を起動しようとすると、突然、次のエラー メッセージが表示されました。
ファイル libgcc_s_dw2-1.dll は、Windows で実行するように設計されていないか、エラーが含まれています。元のインストール メディアを使用してプログラムを再度インストールするか、管理者に問い合わせてください。エラー ステータス: 0xc0000020。
この問題を解決する方法はありますか?
ffmpeg - Android NDK r17 を使用した C ライブラリ (FFmpeg) のビルド: '__mulodi4' への未定義の参照
私の問題はたまたま FFmpeg にありますが、これはほぼすべての C ライブラリで発生すると思われます。
問題の説明
私のアプリは、NDK r10e でコンパイルされた FFmpeg を使用しています。Googleはgccよりもclangを使用することを好むため、clangに切り替えながら、すべてをNDK r17に更新しようとしています。
私の最初のステップは、FFmpeg をビルドすることです。
そのために、make_standalone_toolchain.py
スクリプトを使用して、次のように x86 アーキテクチャ用のスタンドアロン ツールチェーンを作成しました。
次に、FFmpeg ビルドを次のように構成します。
そして、次のようにビルドします。
すべてが正常にコンパイルされているように見えますが、すべて同じことを示すいくつかのリンカ エラーが発生します。
「__mulodi4」への未定義の参照
私が試した解決策
1. libclang_rt.builtins* へのリンク
これは、libgcc が__mulodi4
. sitsofe という名前の github ユーザーは、ここに回避策を投稿してくれました。libclang_rt.builtins-i686.a
ただし、このライブラリがどこにあるかは確かです。スタンドアロンのツールチェーン ディレクトリで見つけたものは次のとおりです。
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-x86_64.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-i386.a ./lib64/clang/6.0. 2/lib/linux/libclang_rt.builtins-aarch64-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-mips64-android.a ./lib64/clang/6.0.2/lib/ linux/libclang_rt.builtins-x86_64-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-i686-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt. builtins-arm-android.a ./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-mips-android.a
libclang_rt.builtins-i686-android.a
図書館は近くに見えますが、(私が思うに)葉巻はありません。リンクしようとすると、同じエラーが発生します。
「__mulodi4」への未定義の参照
これが私の新しいFFmpegビルド構成コマンドです:
-v
この行がリンカーフラグに追加されていることを確認するために確認しましたが、そうでした。ただし、このライブラリが機能することが期待されるかどうか、ましてやリンカー フラグに正しく追加されているかどうかはわかりません。いずれにせよ、私がここでやっていることはうまくいきません。
2.別の消毒剤への切り替え
未定義のサニタイザーを使用する代わりに、アドレス サニタイザーに切り替えてみました。今週の Google I/O で r17 で asan が利用可能になるという漠然とした言及に基づいて、これは (率直に言って) 完全な闇の攻撃です。
この場合、FFmpeg は正常にビルドされます。
ただし、FFmpeg をテスト プロジェクト (C++ をサポートする単純な AAR で、 を呼び出す jni メソッドが 1 つだけあるプロジェクト) にプルしようとすると、大量av_gettime()
のリンカー エラーが発生します。
エラー: エラー: '__asan_option_detect_stack_use_after_return' への未定義の参照
エラー: エラー: '__asan_stack_malloc_0' への
未定義の参照 エラー: エラー:
'__asan_report_load4' への未定義の参照 エラー: エラー: '
__asan_report_load4' への未定義の参照
エラー: エラー: '__asan_option_detect_stack_use_after_return' への未定義の参照
エラー: エラー: '__asan_stack_malloc_0' への未定義の
参照 エラー: エラー: '__asan_report_load4' への
未定義の参照 エラー: エラー: '__asan_report_load4' への
未定義の参照__asan_shadow_memory_dynamic_address'
エラー: エラー: '__asan_option_detect_stack_use_after_return' への未定義参照
エラー: エラー: '
__asan_stack_malloc_0' への
未定義参照 エラー: エラー: '
__asan_report_store4' への未定義参照
エラー: エラー: '__asan_version_mismatch_check_v9' への未定義の参照
したがって、FFmpeg ライブラリは問題なく見つかったようで、CMake ファイルのその部分は正しいことを示していますが、これらの asan 参照を見つけることができません。
これは、人々が遭遇する一般的な問題のようですが、実際に機能する回避策を見つけることができません。