Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 22.01.2016
Сообщений: 4

При сборке проекта возникает ошибка: Multiple definition

22.01.2016, 14:08. Показов 1802. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Пытаюсь собрать следующую программу с Github'а https://github.com/222464/NeoRL.
Делаю cmake, make.
Когда делаю make, получаю кучу warning'ов, но ошибок нет. А вот линковка не проходит. Получаю 24 очень похожих ошибки:

CMakeFiles/NeoRL.dir/source/neo/PredictiveHierarchy.cpp.o: In function `cl::operator|(cl::QueueProperties, cl::QueueProperties)':
PredictiveHierarchy.cpp:(.text+0xf8): multiple definition of `cl::operator|(cl::QueueProperties, cl::QueueProperties)'
CMakeFiles/NeoRL.dir/source/neo/Swarm.cpp.o:Swarm.cpp:(.text+0xf8): first defined here


Во всех написано про multiple definition of `cl::operator| только с разными типами параметров. И в каждой из них написано про файл Swarm.cpp.

Про то, что такое множественное определение представление имею, но вот что смотреть и как исправить не понимаю. Что-нибудь похожее на cl::operator| в исходниках не нашла...

Помогите, пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2016, 14:08
Ответы с готовыми решениями:

Ошибка multiple definition при сборке в QT Creator
Через консоль (c помощью g++) программа компилируется и запускается без ошибок В QT Creator не компилируется ...

Ошибка multiple definition of main при наследовании
Всем привет. Проблема описана много где в интернете , но я так и не смог понять в чём косяк у меня. Помогите разобраться. Есть...

При компиляции возникает ошибка Form1' does not contain a definition for 'Form1_Load'
Пробую скомпилировать код из примера выходит ошибка: Error 1 'Example1_1.Form1' does not contain a definition for 'Form1_Load' and no...

10
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,033
Записей в блоге: 1
23.01.2016, 13:44
Ана1251, там в issues есть эта проблема: https://github.com/222464/NeoRL/issues/4
Пока не закрыта. Следите за сообщениями.
Просто качать и собирать, лично мне, не хочется.
0
23.01.2016, 22:08

Не по теме:

Croessmah, похоже, что это она же и открыла. В тот же день и ник похож... предполагаю, что девушку зовут Анастасия, поэтому тут Ана, а там Стася.

0
23.01.2016, 22:37

Не по теме:

Humanoid, возможно, я тоже об это подумал. Но всё-таки, не мешает отправить, вдруг не она.
У меня нет OpenCL, чтобы всё это собрать, ставить не хочется.

0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
25.01.2016, 00:58
Есть подозрение что cl::operator| определен в заголовочном файле и не помечен как inline
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,033
Записей в блоге: 1
25.01.2016, 01:23
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Есть подозрение что cl::operator| определен в заголовочном файле и не помечен как inline
Так и есть. В cl2.hpp нет inline
0
0 / 0 / 0
Регистрация: 22.01.2016
Сообщений: 4
25.01.2016, 12:22  [ТС]
Да, на гитхабе тоже я.

Спасибо, действительно inline отсутствует.
Правда, после исправления, появились ошибки компиляции.

Буду дальше копать)
0
0 / 0 / 0
Регистрация: 22.01.2016
Сообщений: 4
26.01.2016, 13:24  [ТС]
Добрый день!

Обновила OpenCL. Теперь он с inline.
Но возникает следующая ошибка. Что это такое? И как можно исправить?

Linking CXX executable NeoRL
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 0 имеет недопустимый индекс символа 11
Кликните здесь для просмотра всего текста
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 1 имеет недопустимый индекс символа 12
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 2 имеет недопустимый индекс символа 2
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 3 имеет недопустимый индекс символа 2
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 4 имеет недопустимый индекс символа 11
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 5 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 6 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 7 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 8 имеет недопустимый индекс символа 12
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 9 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 10 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 11 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 12 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 13 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 14 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 15 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 16 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 17 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 18 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 19 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 20 имеет недопустимый индекс символа 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): перемещение 21 имеет недопустимый индекс символа 22
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_line): перемещение 0 имеет недопустимый индекс символа 2

/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
CMakeFiles/NeoRL.dir/source/system/ComputeSystem.cpp.o: In function `cl::CommandQueue::CommandQueue(cl::Cont ext const&, cl:: Device const&, unsigned long long, int*)':
ComputeSystem.cpp: (.text._ZN2cl12CommandQueueC2ERKNS_7Cont extERKNS_6DeviceEyPi[_ZN2cl12CommandQueueC5ERKNS_7ContextERKN S_6DeviceEyPi]+0x8b): undefined reference to `clCreateCommandQueueWithProperties'
collect2: error: ld returned 1 exit status
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
26.01.2016, 13:27
Ана1251, у тебя система 64 бит?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
26.01.2016, 13:31
Несколько смущает путь /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o. В совокупности с выдачей ошибки сильно смахивает на то, что установлена какая-то самопальная версия glibc, собранная с отладочной информацией. У тебя в таких условиях обычный hello world компилируется (с теми же опциями, что и при компиляции данной софтины)?
0
0 / 0 / 0
Регистрация: 22.01.2016
Сообщений: 4
26.01.2016, 13:39  [ТС]
Нет. 32-бит

Добавлено через 7 минут
Да, обычный hello world компилируется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2016, 13:39
Помогаю со студенческими работами здесь

Ошибка multiple definition
Ошибка multiple definition of `SocketTest::bytesWritten(long long)' подскажите в чем проблема #ifndef SOCKETTEST_H #define...

Ошибка multiple definition
В строке 4 компилятор выдает ошибку "multiple definition of 'fin'". Проблема в том, что в этой строке вообще нет слова fin. Объясните,...

Ошибка multiple definition of `Start'
так объявляю этот старт, на который ругается: void **Start В конструкторе формы делаю так: Start=NULL; Как побороть данную...

Реализовать через тип данных структура. При сборке и отладки возникает ошибка. В чем ошибка?
С++ в таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и вывести наименование товара, цена которого...

Multiple definition ошибка, использую extern
Доброго времени суток. Столкнулся с проблемой, описанной в шапке темы. Замысел заключается в создании файла, где будут храниться все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru