我正在尝试部署一个使用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
Dependency walker显示以下内容:
如何解决这个strncpy_s问题?似乎ffmpeg使用这个函数是msvcrt。我使用了他们提供的windows二进制文件。我宁愿不必自己编译库,因为它有很多依赖项。
答案 0 :(得分:2)
虽然不是通用的解决方案,但我使用旧版本的ffmpeg解决了这个问题。以下版本是msvcr.dll
中不需要strncpy_s的最新版本答案 1 :(得分:0)
使用ffmpeg-20130706会起作用,因为它不使用strncpy_s符号而不是运行时库中包含的strncpy。除非你在ffmpeg中使用的符号发生了变化,否则你应该可以在两周之前更换那些符号的dll,否则只需重新编译旧的依赖项。