問題タブ [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.

0 投票する
2 に答える
2425 参照

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 インクルード パスに追加するにはどうすればよいですか?

0 投票する
1 に答える
672 参照

c++ - GCC 4.8 アプリケーションで GCC 4.4 ライブラリを使用する

アプリケーションを作成しており、rhel7 で GCC 4.8 を使用したいと考えています。私の問題は、rhel6 上に構築された GCC 4.4 を使用して構築されたサードパーティの共有ライブラリを使用する必要があることです。

0 投票する
0 に答える
121 参照

octave - libgcc_s_dw2-1.dll にエラーが含まれています

Windows 10 プラットフォームで約 1 年間、Octave 4.03 を使用しています。いつものように Octave GUI を起動しようとすると、突然、次のエラー メッセージが表示されました。

ファイル libgcc_s_dw2-1.dll は、Windows で実行するように設計されていないか、エラーが含まれています。元のインストール メディアを使用してプログラムを再度インストールするか、管理者に問い合わせてください。エラー ステータス: 0xc0000020。

この問題を解決する方法はありますか?

0 投票する
1 に答える
1377 参照

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 参照を見つけることができません。

これは、人々が遭遇する一般的な問題のようですが、実際に機能する回避策を見つけることができません。