cygwin 编译 android vlc,Cygwin 编译 VLC 问题

Cygwin 编译 VLC

遇到了这么多问题,不过还好最后编译过去了。

问题

1:

gcc -mno-cygwin -Wsign-compare

-Wall -mms-bitfields -pipe -o libaccess_output_dummy_plugin.dll

-g

-shared -u _vlc_entry__0_8_6 -L/usr/win32/lib

libaccess_output_dummy_plugin.a -L/usr/local/lib

if gcc -mno-cygwin -DHAVE_CONFIG_H -I. -I.

-I../.. -I/usr/win32/include

-I/usr/win32/include/ebm

l -D_OFF_T_ -D_off_t=long -DSYS_MINGW32 -I../../include

`top_builddir="../.." ../../vlc-config --c

flags plugin access_output_file` -Wsign-compare

-Wall -mms-bitfields -pipe -MT

libaccess_output_f

ile_plugin_a-file.o -MD -MP -MF

".deps/libaccess_output_file_plugin_a-file.Tpo" -c -o

libaccess_ou

tput_file_plugin_a-file.o `test -f 'file.c' || echo './'`file.c;

\

then mv -f ".deps/libaccess_output_file_plugin_a-file.Tpo"

".deps/libaccess_output_file_pl

ugin_a-file.Po"; else rm -f

".deps/libaccess_output_file_plugin_a-file.Tpo"; exit 1; fi

In file included from file.c:30:

/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/include/sys/stat.h:113:

error: pars

e error before "off_t"

/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/include/sys/stat.h:118:

error: pars

e error before '}' token

make[4]: *** [libaccess_output_file_plugin_a-file.o] 错误 1

make[4]: Leaving directory

`/tmp/vlc-0.8.6i/modules/access_output'

make[3]: *** [all-modules] 错误 1

make[3]: Leaving directory

`/tmp/vlc-0.8.6i/modules/access_output'

make[2]: *** [all-recursive] 错误 1

make[2]: Leaving directory `/tmp/vlc-0.8.6i/modules'

make[1]: *** [all-recursive] 错误 1

make[1]: Leaving directory `/tmp/vlc-0.8.6i'

make: *** [all] 错误 2

解决办法:

/usr/i686-pc-mingw32/include/sys目录下

在stat.h的文件开始处添加

#ifndef _OFF_T DEFINED

typedef long off_t;

#define _OFF_T DEFINED

#endif

问题

2:

gcc -mno-cygwin -Wsign-compare

-Wall -mms-bitfields -pipe -o libdtstofloat32_plugin.dll -g

-shared

-u _vlc_entry__0_8_6 -L/usr/win32/lib libdtstofloat32_plugin.a -L/usr/local/lib

-ldts_pic

libdtstofloat32_plugin.a(libdtstofloat32_plugin_a-dtstofloat32.o):

In function `Open':

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:219:

undefined reference to `_dca_in

it'

libdtstofloat32_plugin.a(libdtstofloat32_plugin_a-dtstofloat32.o):

In function `DoWork':

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:303:

undefined reference to `_dca_sy

ncinfo'

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:312:

undefined reference to `_dca_fr

ame'

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:331:

undefined reference to `_dca_bl

ocks_num'

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:335:

undefined reference to `_dca_bl

ock'

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:341:

undefined reference to `_dca_sa

mples'

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:331:

undefined reference to `_dca_bl

ocks_num'

libdtstofloat32_plugin.a(libdtstofloat32_plugin_a-dtstofloat32.o):

In function `Destroy':

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:376:

undefined reference to `_dca_fr

ee'

libdtstofloat32_plugin.a(libdtstofloat32_plugin_a-dtstofloat32.o):

In function `CloseFilter':

/tmp/vlc-0.8.6i/modules/audio_filter/converter/dtstofloat32.c:430:

undefined reference to `_dca_fr

ee'

collect2: ld returned 1 exit status

make[6]: *** [libdtstofloat32_plugin.dll] 错误 1

make[6]: Leaving directory

`/tmp/vlc-0.8.6i/modules/audio_filter/converter'

make[5]: *** [all-modules] 错误 1

make[5]: Leaving directory

`/tmp/vlc-0.8.6i/modules/audio_filter/converter'

make[4]: *** [all-recursive] 错误 1

make[4]: Leaving directory

`/tmp/vlc-0.8.6i/modules/audio_filter'

make[3]: *** [all] 错误 2

make[3]: Leaving directory

`/tmp/vlc-0.8.6i/modules/audio_filter'

make[2]: *** [all-recursive] 错误 1

make[2]: Leaving directory `/tmp/vlc-0.8.6i/modules'

make[1]: *** [all-recursive] 错误 1

make[1]: Leaving directory `/tmp/vlc-0.8.6i'

make: *** [all] 错误 2

解决方法:

./configure 后会生成 vlc-config

文件

修改 vlc-config 文件中

dtstofloat32)

ldflags="${ldflags} -ldts_pic"

为:

dtstofloat32)

ldflags="${ldflags} -ldts"

重新make

问题

3:gcc

-mno-cygwin -Wsign-compare -Wall -mms-bitfields -pipe -o

libflacdec_plugin.dll -g -shared -u _

vlc_entry__0_8_6 -L/usr/win32/lib

libflacdec_plugin.a -L/usr/local/lib /usr/win32/lib/libFLAC.a

-

lm /usr/win32/lib/libogg.a

/usr/win32/lib/libFLAC.a(bitwriter.o):bitwriter.c:(.text+0x3fb):

undefined reference to `_ntohl@4'

/usr/win32/lib/libFLAC.a(bitwriter.o):bitwriter.c:(.text+0x488):

undefined reference to `_ntohl@4'

/usr/win32/lib/libFLAC.a(bitwriter.o):bitwriter.c:(.text+0x4e5):

undefined reference to `_ntohl@4'

/usr/win32/lib/libFLAC.a(bitwriter.o):bitwriter.c:(.text+0x57f):

undefined reference to `_ntohl@4'

/usr/win32/lib/libFLAC.a(bitwriter.o):bitwriter.c:(.text+0x5d5):

undefined reference to `_ntohl@4'

/usr/win32/lib/libFLAC.a(bitwriter.o):bitwriter.c:(.text+0x66f):

more undefined references to `_ntohl@4'

follow

collect2: ld returned 1 exit status

make[4]: *** [libflacdec_plugin.dll] 错误 1

make[4]: Leaving directory `/tmp/vlc-0.8.6i/modules/codec'

make[3]: *** [all-modules] 错误 1

make[3]: Leaving directory `/tmp/vlc-0.8.6i/modules/codec'

make[2]: *** [all-recursive] 错误 1

make[2]: Leaving directory `/tmp/vlc-0.8.6i/modules'

make[1]: *** [all-recursive] 错误 1

make[1]: Leaving directory `/tmp/vlc-0.8.6i'

make: *** [all] 错误 2

解决方法:

./configure 后会生成 vlc-config

文件

修改 vlc-config 文件中

flacdec)

ldflags="${ldflags} -lFLAC"

为:

flacdec)

ldflags="${ldflags} -lFLAC -lws2_32"

重新make

问题

4:

Making all in activex

make[2]: Entering directory `/tmp/vlc-0.8.6i/activex'

make all-am

make[3]: Entering directory `/tmp/vlc-0.8.6i/activex'

if g++ -mno-cygwin -DHAVE_CONFIG_H -I. -I.

-I.. -I/usr/win32/include

-I/usr/win32/include/ebml -

D_OFF_T_ -D_off_t=long -DSYS_MINGW32 -I../include

`top_builddir=".." ../vlc-config --cxxflags acti

vex` -Wsign-compare -Wall -mms-bitfields -pipe -MT libaxvlc_a-main.o -MD

-MP -MF ".deps/libaxvlc

_a-main.Tpo" -c -o libaxvlc_a-main.o `test -f 'main.cpp' || echo

'./'`main.cpp; \

then mv -f ".deps/libaxvlc_a-main.Tpo" ".deps/libaxvlc_a-main.Po";

else rm -f ".deps/libax

vlc_a-main.Tpo"; exit 1; fi

In file included from

/usr/lib/gcc/i686-pc-mingw32/3.4.4/include/c++/cwchar:54,

from

/usr/lib/gcc/i686-pc-mingw32/3.4.4/include/c++/bits/postypes.h:46,

from

/usr/lib/gcc/i686-pc-mingw32/3.4.4/include/c++/iosfwd:50,

from

/usr/lib/gcc/i686-pc-mingw32/3.4.4/include/c++/bits/stl_algobase.h:70,

from

/usr/lib/gcc/i686-pc-mingw32/3.4.4/include/c++/vector:67,

from utils.h:28,

from main.cpp:24:

/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/include/wchar.h:419:

error: `off_t'

does not name a type

make[3]: *** [libaxvlc_a-main.o] 错误 1

make[3]: Leaving directory `/tmp/vlc-0.8.6i/activex'

make[2]: *** [all] 错误 2

make[2]: Leaving directory `/tmp/vlc-0.8.6i/activex'

make[1]: *** [all-recursive] 错误 1

make[1]: Leaving directory `/tmp/vlc-0.8.6i'

make: *** [all] 错误 2

解决办法:

/usr/i686-pc-mingw32/include/目录下

在wchar.h的文件开始处添加

#ifndef _OFF_T DEFINED

typedef long off_t;

#define _OFF_T DEFINED

#endif

问题 5:

编译成功后运行vlc.exe

bash: ./vlc.exe: Permission

denied

解决办法:

aaronvox#aaronvox

/tmp/vlc-0.8.6i

$ chmod 755 vlc.exe vlc.exe.manifest

aaronvox#aaronvox

/tmp/vlc-0.8.6i

$ ./vlc.exe

哇咔咔咔咔~~~~~~~~~~臭美一会~~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值