При компиляции я пишу "gcc -g -Wall dene2 dene2.c", затем gcc выдает некоторую трассировку - PullRequest
1 голос
/ 21 мая 2010

Когда я компилирую свой код, я пишу gcc -g -Wall dene2 dene2.c в консоли. Затем gcc выводит некоторый текст на экран. Я не понимаю, что означает этот вывод (по этой причине я не мог придумать значимого заголовка).

Я пробовал поиск в Google, но мне не повезло.

Я не прошу подробного изучения всех выводов ниже. Просто покажи мне "как ловить рыбу".

dene2: In function `_start':
    /build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:65: multiple 
       definition of `_start'
   /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:/build/buildd/eglibc-2.10.1
      /csu/../sysdeps/i386/elf/start.S:65: first defined here
dene2:(.rodata+0x0): multiple definition of `_fp_hw'
   /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:(.rodata+0x0): first 
     defined here
dene2: In function `_fini':
   (.fini+0x0): multiple definition of `_fini'
   /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crti.o:(.fini+0x0): first defined 
      here
dene2:(.rodata+0x4): multiple definition of `_IO_stdin_used'
   /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:(.rodata.cst4+0x0): first 
     defined here
dene2: In function `__data_start':
 (.data+0x0): multiple definition of `__data_start'
   /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:(.data+0x0): first defined 
     here
dene2: In function `__data_start':
 (.data+0x4): multiple definition of `__dso_handle'
  /usr/lib/gcc/i486-linux-gnu/4.4.1/crtbegin.o:(.data+0x0): first defined here
dene2: In function `_init':
 (.init+0x0): multiple definition of `_init'
  /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crti.o:(.init+0x0): first defined 
       here
  /tmp/ccMlGkkV.o: In function `main':
  /home/fatih/Desktop/dene2.c:5: multiple definition of `main'
dene2:(.text+0xb4): first defined here
  /usr/lib/gcc/i486-linux-gnu/4.4.1/crtend.o:(.dtors+0x0): multiple definition of 
     `__DTOR_END__'
dene2:(.dtors+0x4): first defined here
  collect2: ld returned 1 exit status

Ответы [ 2 ]

6 голосов
/ 21 мая 2010

Я думаю, что вы, вероятно, хотите -o в этой командной строке:

gcc -g -Wall -o dene2 dene2.c

То, что у вас есть без -o, пытается связать dene2 с результатом компиляции dene2.c. dene2 вероятно осталось в вашем каталоге с предыдущей попытки сборки. Вот почему вы видите все ошибки повторяющихся символов.

3 голосов
/ 21 мая 2010

В вашей строке компиляции отсутствует -o.

gcc -g -Wall -o dene2 dene2.c

Компоновщик пытается связать ваш исполняемый файл с исходным кодом, который вы сейчас компилируете, в результате чего получается несколько определений.

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