gpt4 book ai didi

windows - 对 'ff_put_pixels_clamped_mmx' 的 undefined reference

转载 作者:可可西里 更新时间:2023-11-01 11:46:24 26 4
gpt4 key购买 nike

我有一个 windows 8.1 64 位,intel i7。我正在尝试从源代码构建 ffmpeg 动态库 (dll),版本 3.2.4 为此,我克隆了 ffmpeg git 存储库,并检查了标签 n3.2.4我在我的 windows 8.1 中安装了 mingw64,打开了一个 mingw64 shell。我在构建之前运行了“configure”命令,使用了以下开关:

./configure --prefix=ffmpeg/ --disable-gpl --disable-nonfree --enable-shared --disable-static --disable-doc  --disable-yasm --disable-debug --disable-network

在某些时候,在链接阶段,它退出并出现这些 ld 错误:

WINDRES libswresample/swresampleres.o
GEN libswresample/libswresample.ver
LD libswresample/swresample-2.dll
sed -e "s/ @[^ ]*//" libswresample/swresample-2.orig.def > libswresample/swresample-2.def; dlltool -m i386:x86-64 -d libswresample/swresample-2.def -l libswresample/swresample.lib -D swresample-2.dll
LD libavcodec/avcodec-57.dll
libavcodec/x86/simple_idct.o: In function `ff_simple_idct_put_mmx':
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:911: undefined reference to `ff_put_pixels_clamped_mmx'
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:911:(.text+0x1fb0): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ff_put_pixels_clamped_mmx'
libavcodec/x86/simple_idct.o: In function `ff_simple_idct_add_mmx':
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:916: undefined reference to `ff_add_pixels_clamped_mmx'
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:916:(.text+0x1fe0): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ff_add_pixels_clamped_mmx'
libavcodec/x86/simple_idct.o: In function `ff_simple_idct_put_sse2':
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:921: undefined reference to `ff_put_pixels_clamped_sse2'
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:921:(.text+0x2010): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ff_put_pixels_clamped_sse2'
libavcodec/x86/simple_idct.o: In function `ff_simple_idct_add_sse2':
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:926: undefined reference to `ff_add_pixels_clamped_sse2'
C:\GitRepos\ffmpeg/libavcodec/x86/simple_idct.c:926:(.text+0x2040): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ff_add_pixels_clamped_sse2'

发现按照某些地方的建议添加 -mcmodel=large 开关应该可以修复它。添加后,我只剩下“ undefined reference ”错误,我感觉这与 64/32 位问题有关:

GEN     libswresample/libswresample.ver
LD libswresample/swresample-2.dll
sed -e "s/ @[^ ]*//" libswresample/swresample-2.orig.def > libswresample/swresample-2.def; dlltool -m i386:x86-64 -d libswresample/swresample-2.def -l libswresample/swresample.lib -D swresample-2.dll
LD libavcodec/avcodec-57.dll
libavcodec/x86/simple_idct.o:simple_idct.c:(.rdata$.refptr.ff_add_pixels_clamped_sse2[.refptr.ff_add_pixels_clamped_sse2]+0x0): undefined reference to `ff_add_pixels_clamped_sse2'
libavcodec/x86/simple_idct.o:simple_idct.c:(.rdata$.refptr.ff_put_pixels_clamped_sse2[.refptr.ff_put_pixels_clamped_sse2]+0x0): undefined reference to `ff_put_pixels_clamped_sse2'
libavcodec/x86/simple_idct.o:simple_idct.c:(.rdata$.refptr.ff_add_pixels_clamped_mmx[.refptr.ff_add_pixels_clamped_mmx]+0x0): undefined reference to `ff_add_pixels_clamped_mmx'
libavcodec/x86/simple_idct.o:simple_idct.c:(.rdata$.refptr.ff_put_pixels_clamped_mmx[.refptr.ff_put_pixels_clamped_mmx]+0x0): undefined reference to `ff_put_pixels_clamped_mmx'
collect2.exe: error: ld returned 1 exit status
make: *** [library.mak:94: libavcodec/avcodec-57.dll] Error 1

请帮忙,谢谢

最佳答案

根据配置:

mmx_deps="x86"
mmxext_deps="mmx"
sse_deps="mmxext"
sse2_deps="sse"
sse3_deps="sse2"
ssse3_deps="sse3"
sse4_deps="ssse3"
sse42_deps="sse4"
...
mmx_external_deps="yasm"

因此,整个级联依赖于 yasm,但它已通过开关禁用。

关于windows - 对 'ff_put_pixels_clamped_mmx' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43588514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com