формат файла не распознан;рассматривается как скрипт компоновщика - PullRequest
0 голосов
/ 25 июля 2010

Я пытаюсь запустить файлы C, загруженные с здесь , следующим образом:

gcc main.c docs_file.txt ksg_file.txt

Однако я получаю следующую ошибку:

/usr/bin/ld:docs_file.txt: file format not recognized; treating as linker script
/usr/bin/ld:docs_file.txt:2: syntax error
collect2: ld returned 1 exit status

Я не уверен, в чем проблема.

Обновление 1:

Я получаю следующие ошибки при компиляции:

gcc main.c -o ksg


/tmp/cc4H83rG.o: In function `main':
main.c:(.text+0xa5): undefined reference to `stree_new_tree'
main.c:(.text+0xe0): undefined reference to `stree_add_string'
main.c:(.text+0x2a7): undefined reference to `stree_match'
main.c:(.text+0x38f): undefined reference to `int_stree_set_idents'
main.c:(.text+0x422): undefined reference to `int_stree_get_parent'
main.c:(.text+0x47b): undefined reference to `int_stree_get_suffix_link'
/tmp/cc4H83rG.o: In function `count_freq':
main.c:(.text+0x96d): undefined reference to `int_stree_set_idents'
main.c:(.text+0x9a8): undefined reference to `stree_get_num_leaves'
main.c:(.text+0xa91): undefined reference to `int_stree_set_idents'
/tmp/cc4H83rG.o: In function `select_feature':
main.c:(.text+0xb34): undefined reference to `int_stree_set_idents'
main.c:(.text+0xbe7): undefined reference to `stree_get_num_children'
main.c:(.text+0xc47): undefined reference to `int_stree_get_parent'
main.c:(.text+0xc67): undefined reference to `int_stree_set_idents'
main.c:(.text+0xc94): undefined reference to `int_stree_get_parent'
main.c:(.text+0xdbb): undefined reference to `int_stree_get_suffix_link'
main.c:(.text+0xddb): undefined reference to `int_stree_set_idents'
main.c:(.text+0xe08): undefined reference to `int_stree_get_suffix_link'
collect2: ld returned 1 exit status

Ответы [ 3 ]

4 голосов
/ 25 июля 2010

Тарбол, на который вы ссылаетесь, содержит исходный код.Для запуска кода вам необходимо скомпилировать его в исполняемый файл.Затем вы можете запустить исполняемый файл, если компиляция завершится успешно.

Вот файлы, с которых вы должны начать, прямо из файла tar:

$ ls
ksg     main.c      sample_ksgs.txt stree.h
ksg.exe sample_docs.txt stree.c     stree.txt

Компиляция

Сначала мы скомпилируем программу.-o ksg называет исполняемый файл ksg.Когда gcc ничего не отображает, это означает, что он успешно выполнен без каких-либо ошибок или предупреждений.

$ gcc -o ksg main.c stree.c

Run

Теперь мы можем запустить только что созданный исполняемый файл ksg.Синтаксис командной строки: ./ksg <arguments>.Например, мы можем обратиться за помощью к ./ksg -?:

$ ./ksg -?
Dell Zhang, Wee Sun Lee.
Extracting Key-Substring-Group Features for Text Classification.
In Proceedings of the 12th ACM SIGKDD International Conference on
   Knowledge Discovery and Data Mining (KDD),
Philadelphia, PA, Aug 2006.

Usage: ksg [options] docs_file ksgs_file

Options:
         -?          -> help
         -s [0,1]    -> assume white-spaces are word delimiters
                        (default 1)
         -l [2..]    -> the minimum frequency
                        (default 2)
         -h [l..]    -> the maximum frequency
                        (default 8,000)
         -b [2..]    -> the minimum number of branches
                        (default 2)
         -p (0..1]   -> the maximum parent-child conditional probability
                        (default 1.0)
         -q (0..1]   -> the maximum suffix-link conditional probability
                        (default 1.0)
Arguments:
         docs_file    -> the input  file with each line as a raw document
         ksgs_file    -> the output file with each line as a bag of ksg features
2 голосов
/ 25 июля 2010

Обычно gcc может компилировать только .c файлы - которые, как правило, содержат внутри себя код C.

.txt файлы обычно представляют собой простой текст.Только для человеческих глаз.

Попробуйте

gcc *.c

1 голос
/ 25 июля 2010

С C вы не запускаете программу с использованием компилятора. Сначала вы компилируете файл C в двоичный файл (gcc main.c -o binary). Затем вы выполняете его (./binary docs_file.txt ksg_file.txt).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...