pingplug
帖子: 15
注册时间: 2014-02-22 1:09

l-smash有改动,x264_tMod编译失败

最近重新编译l-smash-tMod,发现无法安装。原因是l-smash源码目录有改动。
改了MakeFile后可以安装,但是x264_tMod无法编译通过。提示链接错误。。。
下面是错误信息:

input/audio/lsmash.o:在函数‘lsmash_init’中:
lsmash.c:(.text+0x149):对‘lsmash_importer_open’未定义的引用
lsmash.c:(.text+0x163):对‘lsmash_duplicate_summary’未定义的引用
lsmash.c:(.text+0x39b):对‘lsmash_importer_close’未定义的引用
input/audio/lsmash.o:在函数‘get_next_au’中:
lsmash.c:(.text+0x903):对‘lsmash_importer_get_access_unit’未定义的引用
lsmash.c:(.text+0x96a):对‘lsmash_importer_get_last_delta’未定义的引用
input/audio/lsmash.o:在函数‘lsmash_close’中:
lsmash.c:(.text+0xa28):对‘lsmash_importer_close’未定义的引用
output/mp4_lsmash.o:在函数‘set_param’中:
mp4_lsmash.c:(.text+0x1bbf):对‘mp4sys_amr_create_damr’未定义的引用
collect2: 错误:ld 返回 1
make: *** [x264] Error 1


ps:他们好像想把库与importer.h分离,这回菊苣得写一堆patch了 {:cat_2} 。。。
https://github.com/silverfilain/L-SMASH ... 13a39dR274
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: l-smash有改动,x264_tMod编译失败

l-smash有重新编译过么……

看改动似乎没有改过文件内容,应该不会对编译造成影响?
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
fansge
帖子: 36
注册时间: 2010-09-23 21:48

Re: l-smash有改动,x264_tMod编译失败

--disable-audio 就可以了,反正音频用不上.
头像
mike2718
帖子: 7
注册时间: 2014-05-29 21:50
联系: Twitter

Re: l-smash有改动,x264_tMod编译失败

根据taro巨菊的补丁

代码: 全选

http://tmod.nmm-hd.org/L-SMASH/patches/lsmash-install.diff
加上了楼主提到的l-smash最近commit挪动的cli目录...

代码: 全选

--- Makefile.orig       2014-06-03 18:18:57.740750879 +0800
+++ Makefile    2014-06-03 18:10:41.986292566 +0800
@@ -43,6 +43,7 @@
 install-lib: liblsmash.pc lib
        install -d $(DESTDIR)$(includedir)
        install -m 644 $(SRCDIR)/lsmash.h $(DESTDIR)$(includedir)
+       install -m 644 $(SRCDIR)/cli/importer.h $(DESTDIR)$(includedir)/lsmash_importer.h
        install -d $(DESTDIR)$(libdir)/pkgconfig
        install -m 644 liblsmash.pc $(DESTDIR)$(libdir)/pkgconfig
 ifneq ($(STATICLIB),)
@@ -60,7 +61,7 @@

 #All objects should be deleted regardless of configure when uninstall/clean/distclean.
 uninstall:
-       $(RM) $(DESTDIR)$(includedir)/lsmash.h
+       $(RM) $(addprefix $(DESTDIR)$(includedir)/, lsmash.h, lsmash_importer.h)
        $(RM) $(addprefix $(DESTDIR)$(libdir)/, liblsmash.a liblsmash.dll.a liblsmash.so liblsmash.dylib pkgconfig/liblsmash.pc)
        $(RM) $(addprefix $(DESTDIR)$(bindir)/, $(TOOLS_ALL) $(TOOLS_ALL:%=%.exe) liblsmash.dll cyglsmash.dll)

用l-smash最新的master分支+tMod的tMod分支编译

代码: 全选

cd l-smash
./configure
make clean
make
sudo make install
cd ../taro/x264_tMod
./configure  --bit-depth=10
make clean
make
结果还是卡住了...

代码: 全选

gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o x264.o x264.c
x264.c: 在函数‘help’中:
x264.c:680:10: 警告: 格式字符串 gnu_printf 长度为 0 [-Wformat-zero-length]
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/input.o input/input.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/timecode.o input/timecode.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/raw.o input/raw.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/y4m.o input/y4m.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o output/raw.o output/raw.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o output/matroska.o output/matroska.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o output/matroska_ebml.o output/matroska_ebml.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o output/flv.o output/flv.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o output/flv_bytestream.o output/flv_bytestream.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/filters.o filters/filters.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/video.o filters/video/video.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/source.o filters/video/source.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/internal.o filters/video/internal.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/resize.o filters/video/resize.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/cache.o filters/video/cache.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/fix_vfr_pts.o filters/video/fix_vfr_pts.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/select_every.o filters/video/select_every.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/crop.o filters/video/crop.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/depth.o filters/video/depth.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o audio/audio.o audio/audio.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o audio/encoders.o audio/encoders.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/audio/audio_filters.o filters/audio/audio_filters.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/audio/internal.o filters/audio/internal.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/hqdn3d.o filters/video/hqdn3d.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/pad.o filters/video/pad.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/vflip.o filters/video/vflip.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/yadif.o filters/video/yadif.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/yadif_filter_line.o filters/video/yadif_filter_line.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o filters/video/x86/yadif_filter_line.o filters/video/x86/yadif_filter_line.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/avs.o input/avs.c
In file included from input/avs.c:51:0:
./extras/avxsynth_c.h: 在函数‘avs_array_elt’中:
./extras/avxsynth_c.h:509:54: 警告: ‘index’的声明隐藏了一个全局声明 [-Wshadow]
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/thread.o input/thread.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/lavf.o input/lavf.c
input/lavf.c: 在函数‘read_frame_internal’中:
input/lavf.c:94:5: 警告: 不建议使用‘avcodec_get_frame_defaults’(声明于 /usr/local/include/libavcodec/avcodec.h:3124) [-Wdeprecated-declarations]
input/lavf.c: 在函数‘open_file’中:
input/lavf.c:164:5: 警告: 不建议使用‘avcodec_alloc_frame’(声明于 /usr/local/include/libavcodec/avcodec.h:3114) [-Wdeprecated-declarations]
input/lavf.c: 在函数‘close_file’中:
input/lavf.c:311:5: 警告: 不建议使用‘avcodec_free_frame’(声明于 /usr/local/include/libavcodec/avcodec.h:3139) [-Wdeprecated-declarations]
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o audio/encoders/enc_raw.o audio/encoders/enc_raw.c
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/audio/lavf.o input/audio/lavf.c
input/audio/lavf.c: 在函数‘low_decode_audio’中:
input/audio/lavf.c:351:9: 警告: 隐式声明函数‘avcodec_decode_audio3’ [-Wimplicit-function-declaration]
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o audio/encoders/enc_lavc.o audio/encoders/enc_lavc.c
audio/encoders/enc_lavc.c: 在函数‘resample_audio’中:
audio/encoders/enc_lavc.c:94:17: 警告: ‘channels’的声明隐藏了先前的一个局部变量 [-Wshadow]
audio/encoders/enc_lavc.c:91:9: 警告: 被隐藏的声明在这里 [-Wshadow]
audio/encoders/enc_lavc.c:94:17: 警告: 未使用的变量‘channels’ [-Wunused-variable]
audio/encoders/enc_lavc.c:99:34: 警告: 传递‘avresample_convert’的第 2 个参数时在不兼容的指针类型间转换 [默认启用]
/usr/local/include/libavresample/avresample.h:350:5: 附注: 需要类型‘uint8_t **’,但实参的类型为‘void **’
audio/encoders/enc_lavc.c:99:34: 警告: 传递‘avresample_convert’的第 5 个参数时在不兼容的指针类型间转换 [默认启用]
/usr/local/include/libavresample/avresample.h:350:5: 附注: 需要类型‘uint8_t **’,但实参的类型为‘void **’
audio/encoders/enc_lavc.c: 在函数‘init’中:
audio/encoders/enc_lavc.c:240:5: 警告: 不建议使用‘avcodec_alloc_frame’(声明于 /usr/local/include/libavcodec/avcodec.h:3114) [-Wdeprecated-declarations]
audio/encoders/enc_lavc.c:255:5: 警告: 不建议使用‘avcodec_default_get_buffer’(声明于 /usr/local/include/libavcodec/avcodec.h:3399) [-Wdeprecated-declarations]
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o input/audio/avs.o input/audio/avs.c
In file included from input/audio/avs.c:25:0:
./extras/avxsynth_c.h: 在函数‘avs_array_elt’中:
./extras/avxsynth_c.h:509:54: 警告: ‘index’的声明隐藏了一个全局声明 [-Wshadow]
gcc -Wshadow -Ofast -ffast-math -m32  -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -mpreferred-stack-boundary=5  -I/usr/local/include    -I/usr/local/include    -I/usr/local/include   -fomit-frame-pointer -fno-tree-vectorize   -c -o output/avi.o output/avi.c
output/avi.c: 在函数‘set_param’中:
output/avi.c:137:19: 错误: ‘CODEC_ID_H264’未声明(在此函数内第一次使用)
output/avi.c:137:19: 附注: 每个未声明的标识符在其出现的函数内只报告一次
output/avi.c: 在文件作用域:
output/avi.c:237:1: 警告: 从不兼容的指针类型初始化 [默认启用]
output/avi.c:237:1: 警告: (在‘avi_output.open_file’的初始化附近) [默认启用]
make: *** [output/avi.o] 错误 1

各种苦逼...
偶只不过想在Ubuntu上跑avs2yuv+avisynth
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: l-smash有改动,x264_tMod编译失败

https://blog.7086.in/2013/09/07/2013-09 ... on-debian/

仅供参考。注意configure参数里的avi
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
头像
mike2718
帖子: 7
注册时间: 2014-05-29 21:50
联系: Twitter

Re: l-smash有改动,x264_tMod编译失败

msg7086 写了:https://blog.7086.in/2013/09/07/2013-09 ... on-debian/

仅供参考。注意configure参数里的avi
按照msg酱说的改了下configure选项
在 Ubuntu 12.04 编译过了 {:cat_17}
感谢msg酱 {:cat_11}

回到 “视频编码器 / Video encoder discussion”