После поиска способа определить тип файла файлового потока, я обнаружил, что Unix file command использует libmagic, и я пытаюсь использовать библиотеку самостоятельно, но я не могу ее получить Работа. Я редко интегрировал сторонний код в свой собственный, так что, вероятно, это тоже большая часть моей проблемы.Пытается использовать/включить/скомпилировать стороннюю библиотеку, libmagic. Обнаружение типа файла C/C++
Почему:
Я делаю это потому, что у меня есть портативный графический интерфейс просмотра фотографий приложение, которое необходимо для обнаружения архивных типов файлов (RAR, ZIP, больше?) Из заданного файла и затем файл изображения типы внутри. Я надеюсь, что я могу использовать libmagic для Windows и Linux (и Mac), поэтому, если это не так, остановите меня сейчас b/c Мне нужно найти что-то еще.
Попытка:
Я нашел somebody doing something similar, но я не могу следовать тому, что они делают, и я понятия не имею, как компилировать/запустить что-либо вообще, чтобы начать бездельничать.
Мой первый инстинкт должен был сделать что-то вроде:
// fileTypeTest.cpp, placed in file-5.03/src/ (source from link above)
#include <stdio.h>
#include "magic.h"
int main() {
magic_t myt = magic_open(MAGIC_CONTINUE|MAGIC_ERROR/*|MAGIC_DEBUG*/|MAGIC_MIME);
magic_load(myt,NULL);
printf("magic output: '%s'\n",magic_file(myt,__FILE__));
magic_close(myt);
return 0;
}
затем компилировать что-то вроде:
$ gcc magic.c -o magic.o
$ g++ fileTypeTest.cpp -o fileTypeTest magic.o
который (?, Очевидно) не работает. Я даже не знаю, с чего начать искать, какие вопросы задавать, или если это правильное направление для решения моей первоначальной проблемы в первую очередь.
Edit: Теперь у меня есть
#include <stdio.h>
#include <magic.h>
int main(int argc, char* argv[]) {
if (argc != 2) {
printf("bad arguments");
return 0;
}
magic_t myt = magic_open(MAGIC_CONTINUE|MAGIC_ERROR/*|MAGIC_DEBUG*/|MAGIC_MIME);
magic_load(myt,NULL);
printf("magic output: '%s'\n", magic_file(myt, argv[1]));
magic_close(myt);
return 0;
}
компиляции с:
$ g++ -L/usr/lib -libmagic fileTypeTest.cpp -o fileTypeTest
работ. Я должен был пойти на synaptic и установить libmagic-dev. Мне нужно будет проверить, могу ли я просто скопировать /usr/lib/libmagic.a в мой исходный каталог при компиляции моего приложения в Windows MingW, но это будет по другому вопросу позже, я полагаю.
Публикация сообщений об ошибках, которые вы получаете, будет началом. – 2010-01-20 23:40:17
извините за беспокойство, вы нашли эту библиотеку для Windows? – Tebe
да, конечно, вы его нашли http://gnuwin32.sourceforge.net/packages/file.htm – Tebe