/usr/bin/ld множественное определение во время компиляцииLinux

Ответить Пред. темаСлед. тема
Anonymous
 /usr/bin/ld множественное определение во время компиляции

Сообщение Anonymous »

Я просто хочу отметить, что я не писал этот код и не изменял его каким-либо образом перед тем, как попытаться его скомпилировать. Я только что скопировал исходный код с EL5 на 6 на 7 и скомпилировал его. Я думаю, что когда он перешел с EL5 на EL6, мне пришлось изменить некоторые ссылки на библиотеки MySQL, но на этот раз я ничего не менял в коде.
Я пытаюсь скомпилировать старую выпущенную программу примерно в 2007 году на AlmaLinux 9. До этого момента мне удавалось поддерживать работу этой штуки при всех обновлениях ОС, но на этот раз это был кошмар.
Каждый раз, когда я пытаюсь скомпилировать этот код Я получаю следующие сообщения:

Код: Выделить всё

>/bin/sh ../libtool    --mode=link gcc  -g -O2 -rpath '/usr/local/plot/lib' -L/usr/lib64 -L >-L/usr/lib64 -L/usr/lib64 -L/usr/lib64  -o poll snmp.o dbi.o poll.o util.o targ.o gram.o >hash.o  -lnetsnmp -lgd -lpng -lltdl -lz -lrt -lpthread -lm
(Я не совсем понимаю, почему в предыдущей строке указано "-L/usr/lib64" 4x.)

Код: Выделить всё

>mkdir .libs
>gcc -g -O2 -o poll snmp.o dbi.o poll.o util.o targ.o gram.o hash.o  -L/usr/lib64 ->L/home/zct/build/src -lnetsnmp -lgd -lpng -lltdl -lz -lrt -lpthread -lm -Wl,--rpath ->Wl,/usr/local/plot/lib
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:28: multiple definition of `db_test'; >snmp.o:/home/zct/build/src/dbi.h:28: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:29: multiple definition of `db_status'; >snmp.o:/home/zct/build/src/dbi.h:29: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:36: multiple definition of `db_connect'; >snmp.o:/home/zct/build/src/dbi.h:36: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:37: multiple definition of `db_disconnect'; >snmp.o:/home/zct/build/src/dbi.h:37: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:38: multiple definition of `db_commit'; >snmp.o:/home/zct/build/src/dbi.h:38: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:39: multiple definition of `db_insert'; >snmp.o:/home/zct/build/src/dbi.h:39: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:30: multiple definition of `db_populate'; >snmp.o:/home/zct/build/src/dbi.h:30: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/dbi.h:32: multiple definition of `db_intSpeed'; >snmp.o:/home/zct/build/src/dbi.h:32: first defined here
>/usr/bin/ld: dbi.o:/home/zct/build/src/plot.h:154: multiple definition of `std_colors'; >snmp.o:/home/zct/build/src/plot.h:154: first defined here
>collect2: error: ld returned 1 exit status
и вот окончательный результат:

Код: Выделить всё

make[1]: *** [Makefile:528: poll] Error 1
Вот строки 526–528 Makefile:

Код: Выделить всё

poll$(EXEEXT): $(poll_OBJECTS) $(poll_DEPENDENCIES) $(EXTRA_poll_DEPENDENCIES)
@rm -f poll$(EXEEXT)
$(AM_V_CCLD)$(poll_LINK) $(poll_OBJECTS) $(poll_LDADD) $(LIBS)

Код: Выделить всё

make[1]: Leaving directory '/home/zct/build/src'
make: *** [Makefile:395: all] Error 2
Вот строки
394-395:

Код: Выделить всё

all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
Я не могу сказать, являются ли сообщения ld причиной остановки компиляции или это просто информационные/предупреждающие сообщения.
Буквально любые подталкивание в правильном направлении приветствуется. Я исправил довольно много странностей, чтобы добраться до этой точки. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/787 ... ng-compile
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»