Windows 환경에서 VLC 컴파일
windows 환경에서 VLC 설치법. 코덱들은 라이브러리 버전을 이용함.
준비물
=======
1. cygwin 설치
http://www.cygwin.com/
2. 코덱 및 VLC가 필요로 하는 기타 라이브러리
http://download.videolan.org/pub/testing/win32/contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2
3. vlc 최신 버전(0.8.4a) http://www.videolan.org/vlc/download-sources.html
4. NSIS 패키지 2.14 http://prdownloads.sourceforge.net/nsis/nsis-2.14-setup.exe?download
cygwin 설치
===========
http://www.cygwin.com 에서 설치한다.
코덱 및 VLC 필요한 라이브러리 압축 풀기
=======================================
cygwin 루트에 압축을 푼다.
그러면 /usr/win32/ 폴더에 header 파일 들과 라이브러리, 실행 파일들이 설치된다.
vlc 컴파일
==========
(1) Bootstrap 및 configure
A. TroubleShoot (1)을 적용
B. Bootstrap 를 수행한다.
./bootstrap && \
PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig \
CPPFLAGS="-I/usr/win32/include/freetype2 -I/usr/win32/include -I/usr/win32/include/ebml" \
LDFLAGS=-L/usr/win32/lib \
CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" \
./configure \
--disable-gtk \
--enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
--with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
--with-wx-config-path=/usr/win32/bin \
--with-freetype-config-path=/usr/win32/bin \
--with-fribidi-config-path=/usr/win32/bin \
--enable-livedotcom --with-livedotcom-tree=/usr/win32/live.com \
--enable-caca --with-caca-config-path=/usr/win32/bin \
--with-xml2-config-path=/usr/win32/bin \
--with-dvdnav-config-path=/usr/win32/bin \
--disable-cddax --disable-vcdx --enable-goom \
--enable-twolame --enable-dvdread \
--enable-debug --disable-mkv
(2) 컴파일
make
(3) 실행 파일로 만들기
make package-win32-base
vlc-0.8.4a/vlc.exe 와 라이브러리가 생성됨.
(4) NSIS 인스톨러 설치
nsis-2.14-setup.exe 더블클릭 후 설치
(5) installer 형태로 만들기
A. Trouble Shoot (6) 적용
B. 설치 파일로 만들기
make package-win32-base-exe-cygwin
그러면 설치 파일 형태로 vlc-0.8.4a.exe 가 생성됨.
Trouble Shoot
=============
(1) bootstrap 시에 intl/Makefile.in 을 찾을 수 없다고 나온 후 종료됨.
bootstrap 파일 line 410 을 comment out 한다.
#rm -Rf intl # remove by sosuri
(2) bootstrap 시에 아래 오류 메시지 보임
+ autopoint -f
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
gzip: stdin: invalid compressed data--crc error
gzip: stdin: invalid compressed data--length error
tar: Error exit delayed from previous errors
그냥 무시함. 대세에 영향 없음.
(3) make 시 아래 메시지 출력 되며 오류 발생하며 종료됨.
/home/sosuri/Project/12_VideoLan/01_Package/lib/include/ft2build.h:56:38:
freetype/config/ftheader.h: No such file or directory
In file included from parser/builder.cpp:35:
parser/../src/ft2_font.hpp:29:10: #include expects "FILENAME" or <FILENAME>
parser/../src/ft2_font.hpp:30:10: #include expects "FILENAME" or <FILENAME>
In file included from parser/builder.cpp:35:
parser/../src/ft2_font.hpp:60: error: `FT_Glyph' does not name a type
parser/../src/ft2_font.hpp:61: error: `FT_BBox' does not name a type
parser/../src/ft2_font.hpp:74: error: `FT_Library' does not name a type
parser/../src/ft2_font.hpp:76: error: `FT_Face' does not name a type
make[6]: *** [libskins2_plugin_a-builder.o] Error 1
CPPFLAGS="-I/usr/win32/include/freetype2 추가
(4) make 시 아래 메시지 출력되며 오류 발생하며 종료됨.
/usr/win32/lib/libmatroska.a(KaxBlock.o):KaxBlock.cpp:(.text$_ZNSt14__simple_all
ocIPN11libmatroska10DataBufferESt24__default_alloc_templateILb1ELi0EEE10dealloca
teEPS2_j[std::__simple_alloc<libmatroska::DataBuffer*, std::__default_alloc_temp
late<true, 0> >::deallocate(libmatroska::DataBuffer**, unsigned int)]+0x1d): und
efined reference to `std::__default_alloc_template<true, 0>::deallocate(void*, u
nsigned int)'
--disable-mkv 해줌
(5) 실행 시 아래 와 같이 메시지 뜨면서 정상 동작 안함.
[sosuri@h vlc-0.8.4a]$ ./vlc.exe
VLC media player 0.8.4a Janus
[00000270] main dialogs provider error: no dialogs provider module matched "any"
[00000267] skins2 interface error: No suitable dialogs provider found
(hint: compile the wxWidgets plugin, and make sure it is loaded properly)
http://download.videolan.org/pub/testing/win32/contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2
압축 풀을 때 cygwin 에 있는 tar를 사용해서 풀어야 함.
그렇지 않으면 /usr/win32/bin/wx-config 의 심볼릭 링크가 정상적으로 안풀림.
(6) make package-win32-base-exe-cygwin 시에 아래 에러 메시지 출력되며 종료됨.
Section: "Mozilla plugin" ->(SEC03)
SectionIn: [1] [2]
File: Descending to: ".\mozilla\"
File: Returning to: "."
File: "mozilla" -> no files found.
Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] |
/oname=outfile one_file_only)
Error in script "./vlc-0.8.4a/vlc.win32.nsi" on line 346 -- aborting creation process
make: *** [package-win32-base-exe-cygwin] Error 1
vlc.win32.nsi 파일의 Section /o "Mozilla plugin" SEC03 부터 SectionEnd 까지 삭제
=== 참고 문서 ===
[1] http://developers.videolan.org/vlc/vlc/INSTALL.win32
[2] http://developers.videolan.org/vlc/CygwinCompileEnvironmentRevB.pdf
잘되는 군요. 몇가지 부연사항입니다.
Cygwin gcc 버전은 3.4.4 (gcc -dumpversion) 입니다.
VLC 라이브러리의 위치는 아래와 같이 바뀌었습니다
http://download.videolan.org/pub/testing/win32/contrib-old-gcc-3.3-only/contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2
.
위에 설명대로 cygwin에서 "tar -xjvf contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2" 를
해서 풀어주면 됩니다.
그냥 알집으로 풀어주니 wxWidget 이 없다는 메시지가 나오는군요.
== 사랑과 평화 넘치는 행복한 세상을 꿈꾸며
사랑과 평화 넘치는 행복한 세상을 꿈꾸며
VLC media player open source관련 문의사항입니다.
PC의 Window XP환경에서 VLC open source를 갖고 프로젝트를 만들어 컴파일 하고자 합니다.
방법을 좀 설명 부탁드립니다.. ^^;;
댓글 달기