스테레오 카메라야 머.. 가격이 2배면 간단하게 구현가능한데
음.. 아무튼 어떻게 올리고 어떤 카테고리에 들어있는건진 모르겠지만
유튜브에서 셀로판지나 매직아이 보듯 3D로 볼수 있는 컨텐츠가 있었다.




[링크 : http://www.youtube.com/watch?v=SE-u3Ga_oOY&feature=channel]

여러가지 설정중에 Cross-eyed로 하면 매직아이 보듯 사파리눈 하듯 보면 보이는데
역시.. 자연스럽긴해도 눈아파 죽겠다 ㄱ-

제목이 "YouTube 3D Player Test ( yt3d:enable=true )" 이다.
[링크 : http://www.youtube.com/watch?v=89cGA4-yPRw&feature=related]
Posted by 구차니
프로그램 사용/VLC2010. 3. 10. 16:28
컴파일 하다보니 요런 에러를 뱉어 주신다.
혹시나 해서 모든 헤더파일을 검색해서 아래와 같은 정의는 Fedora Core 6에도 존재하지 않는다.
도대체.. FC6에서는 VLC도 설치 못하는건가?

아무튼, 아래의 *_SUPER_MAGIC 선언을 포함한 헤더는
/usr/include/linux/magic.h 에 존재해야 하며
/usr/include/magic.h 를 링크한다고 해서 되진않는다.

#ifndef __LINUX_MAGIC_H__
#define __LINUX_MAGIC_H__

#define ADFS_SUPER_MAGIC        0xadf5
#define AFFS_SUPER_MAGIC        0xadff
#define AFS_SUPER_MAGIC                0x5346414F
#define AUTOFS_SUPER_MAGIC      0x0187
#define CODA_SUPER_MAGIC        0x73757245
#define CRAMFS_MAGIC            0x28cd3d45      /* some random number */
#define CRAMFS_MAGIC_WEND       0x453dcd28      /* magic number with the wrong endianess */
#define DEBUGFS_MAGIC          0x64626720
#define SYSFS_MAGIC             0x62656572
#define SECURITYFS_MAGIC        0x73636673
#define SELINUX_MAGIC           0xf97cff8c
#define RAMFS_MAGIC             0x858458f6      /* some random number */
#define TMPFS_MAGIC             0x01021994
#define HUGETLBFS_MAGIC         0x958458f6      /* some random number */
#define SQUASHFS_MAGIC          0x73717368
#define EFS_SUPER_MAGIC         0x414A53
#define EXT2_SUPER_MAGIC        0xEF53
#define EXT3_SUPER_MAGIC        0xEF53
#define XENFS_SUPER_MAGIC       0xabba1974
#define EXT4_SUPER_MAGIC        0xEF53
#define BTRFS_SUPER_MAGIC       0x9123683E
#define HPFS_SUPER_MAGIC        0xf995e849
#define ISOFS_SUPER_MAGIC       0x9660
#define JFFS2_SUPER_MAGIC       0x72b6
#define ANON_INODE_FS_MAGIC     0x09041934

#define MINIX_SUPER_MAGIC       0x137F          /* original minix fs */
#define MINIX_SUPER_MAGIC2      0x138F          /* minix fs, 30 char names */
#define MINIX2_SUPER_MAGIC      0x2468          /* minix V2 fs */
#define MINIX2_SUPER_MAGIC2     0x2478          /* minix V2 fs, 30 char names */
#define MINIX3_SUPER_MAGIC      0x4d5a          /* minix V3 fs */

#define MSDOS_SUPER_MAGIC       0x4d44          /* MD */
#define NCP_SUPER_MAGIC         0x564c          /* Guess, what 0x564c is :-) */
#define NFS_SUPER_MAGIC         0x6969
#define OPENPROM_SUPER_MAGIC    0x9fa1
#define PROC_SUPER_MAGIC        0x9fa0
#define QNX4_SUPER_MAGIC        0x002f          /* qnx4 fs detection */

#define REISERFS_SUPER_MAGIC    0x52654973      /* used by gcc */
                                        /* used by file system utilities that
                                           look at the superblock, etc.  */
#define REISERFS_SUPER_MAGIC_STRING     "ReIsErFs"
#define REISER2FS_SUPER_MAGIC_STRING    "ReIsEr2Fs"
#define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"

#define SMB_SUPER_MAGIC         0x517B
#define USBDEVICE_SUPER_MAGIC   0x9fa2
#define CGROUP_SUPER_MAGIC      0x27e0eb

#define FUTEXFS_SUPER_MAGIC     0xBAD1DEA

#define STACK_END_MAGIC         0x57AC6E9D

#define DEVPTS_SUPER_MAGIC      0x1cd1
#define SOCKFS_MAGIC            0x534F434B

#endif /* __LINUX_MAGIC_H__ */


[링크 : http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/include/linux/magic.h]

libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DSYS_LINUX -I/usr/local/include -D_FI
LE_OFFSET_BITS=64 -D__USE_UNIX98 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__LIBVLC__ -D__PLUGIN__ -DMODULE_NAME=access_fi
le -DMODULE_NAME_IS_access_file -DMODULE_STRING=\"access_file\" -O2 -ffast-math -funroll-loops -fomit-frame-pointer -Wall -Wextra -W
sign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -
Werror-implicit-function-declaration -MT libaccess_file_plugin_la-file.lo -MD -MP -MF .deps/libaccess_file_plugin_la-file.Tpo -c fil
e.c  -fPIC -DPIC -o .libs/libaccess_file_plugin_la-file.o
In file included from ../../include/vlc_common.h:516,
                 from file.c:33:
../../include/vlc_mtime.h:80: warning: 'error' attribute directive ignored
../../include/vlc_mtime.h:90: warning: 'warning' attribute directive ignored
../../include/vlc_mtime.h:108: warning: 'error' attribute directive ignored
file.c: In function 'IsRemote':
file.c:142: error: 'AFS_SUPER_MAGIC' undeclared (first use in this function)
file.c:142: error: (Each undeclared identifier is reported only once
file.c:142: error: for each function it appears in.)
file.c:143: error: 'CODA_SUPER_MAGIC' undeclared (first use in this function)
file.c:144: error: 'NCP_SUPER_MAGIC' undeclared (first use in this function)
file.c:145: error: 'NFS_SUPER_MAGIC' undeclared (first use in this function)
file.c:146: error: 'SMB_SUPER_MAGIC' undeclared (first use in this function)


'프로그램 사용 > VLC' 카테고리의 다른 글

VLC 크로스컴파일 - 멀고도 험하다 ㅠ.ㅠ  (0) 2010.03.17
VLC GLIBC runtime error  (0) 2010.03.16
x264 , libavcodec 다운로드  (0) 2010.02.24
vlc-1.0.5 cross compile  (3) 2010.02.09
VLC cross compile시 오류 (vlc-1.0.4)  (0) 2010.02.03
Posted by 구차니
프로그램 사용/vi2010. 3. 9. 12:19
원타임 종료 라고 하면 먼가 있어 보일려나? ^^;

아무튼 여러개 문서를 열어 놓을 경우

:qa
:q all

하면 한번에 종료가 된다.

[링크 : http://www.ilug.or.kr/?mid=lec_tip&page=3&document_srl=42573]
Posted by 구차니
SVN은 리파지터리(repository, 이하 저장소) 별로 revision이 올라간다.
다르게 말하자면, 저장소 하나별로 프로젝트를 구성하는게
roll-back 이나, 관리에 유용하다는 점이다.

물론 SVN은 개인적으로 단일 프로젝트에만 사용했지,
단일 - 복합 프로젝트에는 사용해보지 못해서 이것이 정답이다! 라고 하긴 힘들지만
CVS에 비해서 저장소 관리에 모호함이 있다.

CVS는 파일별로 revision이 붙는데,
SVN은 commit 별로 revision이 증가한다.

다르게 말하면 SVN은 하나를 커밋하는 행위가
CVS에서 커밋 후 tag를 붙이는것과 동일한 행위가 된다.

이런 이유로, 하나의 프로젝트에 사용되는 소스 저장용 / 개발환경 저장용 저장소 구성에 있어
약간의 차이점이 생길수 밖에 없다.

일단 /home/cvs 에 구성했다고 할경우
cvs 아래에 여러가지 소스를 디렉토리 별로 구성을 할 수 있다.
물론 atomic commit이라던가, tagging은 문제가 있겠지만,
한번에 모든 저장소를 볼수 있기 때문에 사용상에 상당한 잇점으로 작용한다.

그에비해 svn을 하나의 저장소 아래 여러개 프로젝트로 할 경우,
어떻게 보면 svn을 쓰는 의미가 없어질 정도가 된다.

예를들어 linux kernel / uboot source / nfs target / MTD target을 구성할 경우
CVS는 Filesystem을 CVS에 넣고 각각 디렉토리로 구성해도 상관없지만(파일별로 하니까)
SVN에 이런식으로 구성을 하면, 하나의 커밋 별로 revision이 증가하는건 아무런 의미가 없게된다.

아무튼
/home/svn/프로젝트 1
/home/svn/프로젝트 2
/home/svn/프로젝트 3

이런식으로 구성을 하고,
svnserve -d -r /home/svn
으로 한다음, 개별 프로젝트로 이름을 알아내서 쓰는게 (불편하지만) 낫지 않을까하는 생각이 든다.


혹시.. 웹에서 cvsweb 처럼 보여주는 게 있을려나?
[링크 : http://freshmeat.net/projects/svnweb/]
[링크 : http://freshmeat.net/projects/cvsweb/]
[링크 : http://www.viewvc.org/]

[링크 : http://svnbook.red-bean.com/en/1.4/index.html]
    [링크 : http://svnbook.red-bean.com/en/1.4/svn.reposadmin.planning.html]

'프로그램 사용 > Version Control' 카테고리의 다른 글

GIT는 리눅스에서 받으시는걸 추천합니다.  (0) 2010.03.18
TortoiseGIT  (0) 2010.03.18
SVN의 장점  (0) 2009.09.19
svn tagging/branching  (0) 2009.08.20
SVN repository 구조  (0) 2009.05.11
Posted by 구차니
서버를 교체하거나, 서버의 아이피 변경으로 인해 기존의 서버의 아이피와 겹칠경우
${HOME}/.ssh/known_hosts
파일에 이전의 정보가 남아있는 바람에 생기는 에러이다.
"에러" 라고 한이유는, 경고라고 해놓고 접속이 안되기 때문이다.

해결 방법은, 위의 파일을 삭제하거나(그러면 다음 접속시 키를 다 받아야 하는 귀차니즘이)
해당 서버의 아이피가 들어있는 줄을 지우면 된다.

$ ssh USERID@SERVER_IP
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
5b:c1:63:e6:6c:53:30:ea:fd:fd:f3:72:22:a0:a1:aa.
Please contact your system administrator.
Add correct host key in /home/USERID/.ssh/known_hosts to get rid of this message.
Offending key in /home/USERID/.ssh/known_hosts:2
RSA host key for SERVER_IP has changed and you have requested strict checking.
Host key verification failed.

Posted by 구차니
컴파일 속도를 올리는 법을 찾다보니
distcc라는 녀석이 나온다.
원래 samba에서 관리하던 녀석인가?

60-second instructions:

  1. For each machine, download distcc unpack, and do
    ./configure && make && sudo make install
  2. On each of the servers, run distccd --daemon, with --allow options to restrict access.
  3. Put the names of the servers in your environment:
    export DISTCC_HOSTS='localhost red green blue'
  4. Build!
    cd ~/work/myproject; make -j8 CC=distcc

아무튼 CC를 distcc 로 해서 사용하고
distcc / distccd 조합으로 네트워크를 통해서 병행처리 하는 것으로 보인다.

[링크 : http://mechta.kr/51]
[링크 : http://distcc.samba.org/]
[링크 : http://distcc.org -> http://code.google.com/p/distcc/]



2010.07.08 추가

심볼릭 링크를 변경함으로서 distcc를 cross-compile에도 사용가능 하도록 해준다.
(해보진 않았으나 이런 문서만 발견 -0-)
[링크 : http://www.gentoo.org/doc/en/cross-compiling-distcc.xml]


+
2014.09.30 추가
[링크 : http://whatwant.tistory.com/423

'프로그램 사용 > distcc & ccache' 카테고리의 다른 글

distcc 크로스 컴파일/커널 빌드 관련  (0) 2016.09.13
distcc 로 valgrind-3.6.1 컴파일 실패?  (0) 2014.12.12
distcc 작동모드  (0) 2014.12.09
ccache & distcc  (0) 2014.12.08
distcc on ubuntu  (0) 2014.12.08
Posted by 구차니
프로그램 사용/gcc2010. 3. 4. 11:23

학교에서 컴파일러 배운지도 오래되서 기억도 가물가물하는데,
아무튼 컴파일이라는 과정은 생각보다 여러단계를 거친다.

1단계는 #define 이나 #include 등의 매크로프로세서를 처리하는 과정
2단계는 매크로 처리된 C언어를 컴파일하는 과정(문법 확인)
3단계를 컴파일 된 결과물인 어셈블리 코드를 오브젝트로 변환하는 과정
4단계는 오브젝트들을 서로 묶어주는 과정
5단계는 이런 묶인 녀석들을 메모리에서 돌아가도록 하는 로더라는 녀석을 붙이는 과정을 거친다.

이렇게 단계가 나누어져 있다 보니,
gcc에서는 단계별 결과를 추출해 낼수 있다.

예를들어, 매크로가 복잡해서 소스 추적이 힘들경우
매크로 프로세서를 거친 결과만을 뽑아내고 싶다고 한다면
gcc -E 옵션을 사용하면 매크로가 제외된(처리된) 결과가 stdout으로 나온다.
gcc -E 소스파일 > 저장할 파일
이런식으로 한단계만 거쳐 디버깅에 사용할 수도 있다.

추가적으로, Makefile 에서
CPP 는 C++이 아니라 C PreProcessor = 매크로 프로세서 이고
CC 는 C Compiler
AS 는 Assembler
LD 는 Loader (링커) 를 의미한다.

2010/03/02 - [프로그램 사용/gcc] - gcc의 linker 옵션
2010/01/27 - [프로그램 사용/gcc] - gcc 매크로만 확장하기 (preprocessor/전처리기)
Posted by 구차니
make와 gmake는 유사하나
Fedora Core 6 에서는 실질적으로 symbolic link로 연결이 되어있다.

# ll /usr/bin/*make
lrwxrwxrwx 1 root root      4 Feb 16 13:23 /usr/bin/gmake -> make
-rwxr-xr-x 1 root root 162204 Jul 13  2006 /usr/bin/make

[링크 : http://linux.die.net/man/1/gmake]
[링크 : http://linux.die.net/man/1/make]

shenzhen{bzhu}$ gmake -version
GNU Make version 3.71, by Richard Stallman and Roland McGrath.
Copyright (C) 1988, 89, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

shenzhen{bzhu}$ make -version
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

[링크 : http://www.unix.com/high-level-programming/29191-what-distinguish-between-gmake-make.html]

아무튼, 다르지만 실질적으로 같은 녀석이다.
Posted by 구차니
프로그램 사용/gcc2010. 3. 2. 17:34
gcc 옵션중에 헷갈리는게 있다.
-L과 -l이 그녀석인데, 비슷비슷해서 조금 헷갈린다.

아무튼 -L은 디렉토리(경로)를
-l은 특정 라이브러리 파일을 설정하는데 사용된다.

       -l library
           Search the library named library when linking.  (The second alternative with the library as a separate argu-
           ment is only for POSIX compliance and is not recommended.)

           It makes a difference where in the command you write this option; the linker searches and processes libraries
           and object files in the order they are specified.  Thus, foo.o -lz bar.o searches library z after file foo.o
           but before bar.o.  If bar.o refers to functions in z, those functions may not be loaded.

           The linker searches a standard list of directories for the library, which is actually a file named libli-
           brary.a.  The linker then uses this file as if it had been specified precisely by name.

           The directories searched include several standard system directories plus any that you specify with -L.

           Normally the files found this way are library files---archive files whose members are object files.  The
           linker handles an archive file by scanning through it for members which define symbols that have so far been
           referenced but not defined.  But if the file that is found is an ordinary object file, it is linked in the
           usual fashion.  The only difference between using an -l option and specifying a file name is that -l sur-
           rounds library with lib and .a and searches several directories.

       -Ldir
           Add directory dir to the list of directories to be searched for -l.

       LIBRARY_PATH
           The value of LIBRARY_PATH is a colon-separated list of directories, much like PATH.  When configured as a
           native compiler, GCC tries the directories thus specified when searching for special linker files, if it
           can’t find them using GCC_EXEC_PREFIX.  Linking using GCC also uses these directories when searching for
           ordinary libraries for the -l option (but directories specified with -L come first).

[링크 : http://linux.die.net/man/1/gcc]
Posted by 구차니
컴파일 환경 자동화툴인
autoconf, automake, libtool을 설명한다.

컴파일시 각종 헤더들의 위치, 라이브러리들의위치
그리고 설치할 위치들을 설정하고,
컴파일할 프로그램의 세부 패키지를 설정한다.

아래는 ffmpeg의 configure --help 내용중 일부이다.
Standard options:
  --prefix=PREFIX         install in PREFIX          []

  --bindir=DIR            install binaries in DIR    [PREFIX/bin]
  --datadir=DIR           install data files in DIR  [PREFIX/share/ffmpeg]
  --libdir=DIR            install libs in DIR        [PREFIX/lib]
  --shlibdir=DIR          install shared libs in DIR [PREFIX/lib]
  --incdir=DIR            install includes in DIR    [PREFIX/include]
  --mandir=DIR            install man page in DIR    [PREFIX/share/man]

Advanced options (experts only):
  --enable-cross-compile   assume a cross-compiler is used
  --arch=ARCH              select architecture []
  --target-os=OS           compiler targets OS []
  --cross-prefix=PREFIX    use PREFIX for compilation tools []
  --source-path=PATH       path to source code [/home/morpheuz/st7109/target_ori/root/ffmpeg]
  --sysroot=PATH           root of cross-build tree
  --sysinclude=PATH        location of cross-build system headers
  --target-exec=CMD        command to run executables on target
  --target-path=DIR        path to view of build directory on target
  --nm=NM                  use nm tool
  --as=AS                  use assembler AS []
  --cc=CC                  use C compiler CC [gcc]
  --ld=LD                  use linker LD
  --host-cc=HOSTCC         use host C compiler HOSTCC
  --host-cflags=HCFLAGS    use HCFLAGS when compiling for host
  --host-ldflags=HLDFLAGS  use HLDFLAGS when linking for host
  --host-libs=HLIBS        use libs HLIBS when linking for host
  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS []
  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS []
  --extra-libs=ELIBS       add ELIBS []
  --extra-version=STRING   version string suffix []
  --build-suffix=SUFFIX    library name suffix []
  --cpu=CPU                select the minimum required CPU (affects
                           instruction selection, may crash on older CPUs)
  --disable-yasm           disable use of yasm assembler
  --enable-pic             build position-independent code

이녀석의 경우 arch 와 target-os를 조합해서 cross compiler prefix를 만들어 낸다.
예를들어 sh4-linux의 경우
--enable-cross-compile --arch=sh4 --target-os=linux 라고 하면
자동으로 sh4-linux- 접두를 붙이게 된다.

하지만, target 에만 존재하는 library를 끌어 오려면 어떤 옵션을 써야 하나.. 후우..

[링크 : http://wariua.springnote.com/pages/1041972] << 한글 번역
[링크 : http://sources.redhat.com/autobook/]
Posted by 구차니