내 previous question (참조 용으로 만 연결됨)을 도와 주신 분들께 감사드립니다.정적으로 libmagic 컴파일 (c/C++ 파일 유형 감지)
파일에 fileTypeTest.cpp
, libmagic.a
및 magic
을 넣을 수 있으며, g++ -lmagic fileTypeTest.cpp fileTypeTest
으로 컴파일 할 수 있습니다. 나중에 MinGW로 컴파일 된 Windows에서 실행되는지 테스트 할 것입니다.
작은 GUI 응용 프로그램에서 libmagic을 사용할 계획이며 배포 용으로 정적으로 컴파일하고 싶습니다. 내 문제는 libmagic
이 외부 파일 magic
을 필요로하는 것 같습니다. (필자는 실제로 단축 된 컴파일 된 버전 인 magic_short.mgc를 사용하고 있습니다.)
해킹 된 해결책은 파일을 응용 프로그램에 코딩하여 필요에 따라 외부 파일을 작성 (삭제)하는 것입니다. 어떻게 이것을 피할 수 있습니까?
magic
다른 파일 형식의 속성을 설명하는 텍스트 파일입니다 :
libmagic
은
magic
을 통해 검색합니다. 더 빨리 작동하는 컴파일 된 버전
magic.mgc
이 있습니다. 내 응용 프로그램은 파일 형식을 결정하기 전에 소수의 파일 형식 만 식별해야하므로 내
magic_short
파일을 사용하여
magic_short.mgc
을 만듭니다.
나는 libmagic의 소스도 사용하고 수정하는 것에 대해 생각했기 때문에 sourceforge 버전도 찾았지만 우분투 레보의 libmagic-dev와 같지는 않다. 'man libmagic' 또는 http://linux.die.net/include/magic.h를 확인하면 타임 스탬프는 2003입니다. SF에서 가져온 파일은 2000입니다 (http://sourceforge.net/projects/libmagic/files). /). 그렇지 않으면, 이것이 좋은 해결책이 될 것이라고 상상해 봅니다. 어떻게 풀어 낼지 생각할 수 있습니다. – Kache
최신 libmagic 5.03의 'magic' 항목이 이전 libmagic alpha와 호환되지 않는 것처럼 보입니다. libmagic 5.03은 (man 파일, ftp.astron.com/pub/file/file-5.04.tar.gz에서) 5.03 파일에 포함되어있는 것처럼 보입니다. 내가 그 지점에 도달하면, 나는 appending & pointer offset을하려고 노력하는 것을 멈추게 될지도 모른다고 생각한다. – Kache
어느 쪽이든, 제 도움이 필요하시면 주저하지 말고 답장하십시오. ;) – t0mm13b