3

ffmpeg を使用してカメラ出力を XP マシンにストリーミングするアプリケーションをデプロイしようとしています。アプリケーションは gcc mingw32 でコンパイルされており、Windows 8 で正常に動作します。しかし、Windows XP では次のエラーが発生します。

The procedure entry point strncpy_s could not be located in the 
dynamic link library msvcrt.dll

パスを除く GCC コマンド:

g++ -o mingw\streamer.exe src\testffmpeg.o -lavformat -lavutil -lavcodec -lFlyCapture2_C_v100

依存関係ウォーカーは次のことを示しています。 依存ウォーカー

この strncpy_s の問題を回避するにはどうすればよいですか? この機能を使っているのは、msvcrt の ffmpeg のようです。彼らが提供したWindowsバイナリを使用しました。ライブラリには膨大な依存関係があるため、ライブラリを自分でコンパイルする必要はありません。

4

2 に答える 2

2

一般的な解決策ではありませんが、古いバージョンの ffmpeg を使用してこの問題を解決しました。次のリリースは、msvcr.dll で strncpy_s を必要としない最新のものです。

  • ffmpeg-20130706-git-63d7684-win32-共有
  • ffmpeg-20130706-git-63d7684-win32-dev

このフォーラムスレッドで議論されているように

于 2013-07-16T07:11:22.953 に答える
0

ランタイム ライブラリに含まれている strncpy の代わりに strncpy_s シンボルを使用しないため、ffmpeg-20130706 を使用すると機能します。ffmpeg から使用しているシンボルが変更されていない限り、dll を 2 週間前のものと交換できるはずです。それ以外の場合は、古い依存関係で再コンパイルするだけです。

于 2013-07-26T16:27:12.257 に答える