Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71

Ошибка: program.cpp:(.text+0xf): undefined reference to

26.08.2015, 10:58. Показов 4837. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь собрать программу,

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
#include <shogun/base/init.h>
 
 
int main(int argc, char** argv)
{
 
    shogun::init_shogun_with_defaults();
 
    return 0;
}

в которой используется функция из библиотеки shogun machine learning, получаю следующую ошибку

C++
1
2
3
4
5
6
7
8
CMakeFiles/my_program.dir/my_program.cpp.o:my_program.cpp:(.text+0xf): undefined reference to `shogun::init_shogun_with_defaults()'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
CMakeFiles/my_program.dir/build.make:112: ошибка выполнения рецепта для цели «my_program.exe»
make[2]: *** [my_program.exe] Ошибка 1
CMakeFiles/Makefile2:67: ошибка выполнения рецепта для цели «CMakeFiles/my_program.dir/all»
make[1]: *** [CMakeFiles/my_program.dir/all] Ошибка 2
Makefile:83: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2

собираю в cygwin с помощью cmake ( так как библиотеку shogun для windows можно скомпилить только в cygwin )

код CMakeLists.txt :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cmake_minimum_required(VERSION 2.8)
 
set( BIN my_program )
 
project( ${BIN} )
 
 set( CMAKE_CXX_FLAGS "-std=c++11" ) 
 
add_executable( my_program my_program.cpp )
 
 
INCLUDE_DIRECTORIES(  ${CMAKE_INCLUDE_CURRENT_DIR}/home/shogun-3.1.1/src )
 
target_link_libraries( ${PROJECT_NAME}/home/gdal-2.1/gdal/build/lib )

пути к заголовочным файлам и динамическим библиотекам указаны правильно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.08.2015, 10:58
Ответы с готовыми решениями:

при вызове функции pow() выдаёт ошибку: test.cpp:(.text+0x59b): undefined reference to `pow'
В чём дело? Добавлено через 1 минуту ps. Заголовок math.h подключен.

C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|3 9|undefined reference to `GetStockObject@4'|
C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|39|undefined reference to `GetStockObject@4'|

Странная ошибка: [Linker error] undefined reference to `__dyn_tls_init_callback' [Linker error] undefined reference to ld returned 1 exit status
Здравствуйте. Вот недавно начал изучать книгу &quot;С++ для чайников&quot; Стефан Р. Девис 4-е издание. И напоролся на кучу ошибок) Но смог все...

29
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 13:38
Студворк — интернет-сервис помощи студентам
Прикрепи сюда библиотеку libshogun.a (желательно с заголовочными файлами) в архиве через кнопку "Расширенный режим".
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 14:13  [ТС]
к сожалению не получатся загрузить, архив весит 42 мб

залил на облоко
https://cloud.mail.ru/public/HgHY/DN26wSruo
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 14:15
Откуда качал библиотеку/исходники?
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 14:19  [ТС]
shogun-toolbox.org

компилил по инструкции с помощью cygwin
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 14:33
Хз. Как вариант создай новую директорию (например /home/shogun) перенеси в неё libshogun.a и my_program.cpp и пробуй собрать оттуда.
Кстати, после того как ты создал эту библиотеку, вовсе не обязательно собирать свою программу через cygwin и cmake, но обязательно через компилятор MinGW.
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 14:37  [ТС]
я почему то думал, что в этом есть разница, думал, что если либы собраны в cygwin, то и программу нужно компилить в cygwin
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
26.08.2015, 23:02
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
cmake_minimum_required(VERSION 2.8)
 
set(PROJECT_NAME 
    my_program 
)
 
project( ${PROJECT_NAME } )
 
set( CMAKE_CXX_FLAGS "-std=c++11" ) 
 
# --- укажите здесь пути к хэдэрам
set(PATH_INCLUDES
    ${CMAKE_INCLUDE_CURRENT_DIR}/home/shogun-3.1.1/src
)
 
# --- укажите здесь пути к библиотекам
set(PATH_LIB
    ${CMAKE_INCLUDE_CURRENT_DIR}/home/gdal-2.1/gdal/build/lib
)
 
# --- укажите здесь имена подключаемых статических библиотек
set(LIBRARIES
    shogun${CMAKE_STATIC_LIBRARY_SUFFIX}
)
 
# --- сообщаем, где искать хэдэры
include_directories( ${PATH_INCLUDES} )
 
# --- сообщаем, где искать библиотеки
link_directories   ( ${PATH_LIB} )
 
# --- теперь создаем цель сборки 
add_executable( ${PROJECT_NAME} my_program.cpp )
 
# --- обязательно после создания цели дважды
# (второй вызов - лекарство от какого то старого бага в симейке)
# указываем имя уже существующей цели
# и список имен библиотек, с которыми она будет линковаться
target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
1.
если есть dll/so, то их нужно копировать к бинарнику

2.
если зависимости имеют свои собственные зависимости,
то их так же нужно указывать в списках зависимостей бинарника.


3.
проверьте, что имена файлов и пути к ним - правильные.
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
27.08.2015, 18:18  [ТС]
Собираю проект, при линковке вылетает ошибка (.text+0xb9c): undefined reference to

ругается на функции из библиотеки shogun

путь к dll указан верно, так как другие функции работают

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[100%] Linking CXX executable pansharpening.exe
CMakeFiles/pansharpening.dir/wavelet_fusion.cpp.o:wavelet_fusion.cpp:(.text+0xb9c): undefined reference to `shogun::CSOBI::CSOBI()'
CMakeFiles/pansharpening.dir/wavelet_fusion.cpp.o:wavelet_fusion.cpp:(.text+0xbba): undefined reference to `shogun::CFastICA::CFastICA()'
CMakeFiles/pansharpening.dir/wavelet_fusion.cpp.o:wavelet_fusion.cpp:(.text+0xbd5): undefined reference to `shogun::CJade::CJade()'
CMakeFiles/pansharpening.dir/wavelet_fusion.cpp.o:wavelet_fusion.cpp:(.text+0xbf0): undefined reference to `shogun::CFFSep::CFFSep()'
CMakeFiles/pansharpening.dir/wavelet_fusion.cpp.o:wavelet_fusion.cpp:(.text+0xc0b): undefined reference to `shogun::CJediSep::CJediSep()'
CMakeFiles/pansharpening.dir/wavelet_fusion.cpp.o:wavelet_fusion.cpp:(.text+0xc26): undefined reference to `shogun::CUWedgeSep::CUWedgeSep()'
CMakeFiles/pansharpening.dir/wavelet_fusion.cpp.o:wavelet_fusion.cpp:(.text+0xc5d): undefined reference to `shogun::CICAConverter::get_mixing_matrix() const'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
CMakeFiles/pansharpening.dir/build.make:216: ошибка выполнения рецепта для цели «pansharpening.exe»
make[2]: *** [pansharpening.exe] Ошибка 1
CMakeFiles/Makefile2:67: ошибка выполнения рецепта для цели «CMakeFiles/pansharpening.dir/all»
make[1]: *** [CMakeFiles/pansharpening.dir/all] Ошибка 2
Makefile:83: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
всё это делается в cygwin

есть какие-нибудь соображения ?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.08.2015, 18:32
Цитата Сообщение от Pepslee Посмотреть сообщение
есть какие-нибудь соображения ?
судя по результатам вашей прошлой темы:
Ошибка: program.cpp:(.text+0xf): undefined reference to

помочь вам удаленно вряд ли получится.

можно лишь дать общие рекомендации:

dll должны лежать там же, где запускной файл.

у вас в сценарии сборки отсутствуют понятия дебага/релиза.
в то время, как для библиотек, особенно для либ,
которые хранят таблицу инмпорта - это критично.

нужно удостовериться,что вы не пытаетесь зацепить 32 битную либу в 64 битной сборке и наоборот.

и тд и тп.
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
28.08.2015, 00:33  [ТС]
по поводу релизной сборки а не дебагной это я исправл, а либы все сам компилил в cygwin, по этому никаких ( 32 и 64 ) путаниц быть не должно!

с прошлой темой я вроде разобрался, эта dll подключается нормально, потому что другие функции работаю норм, так же я запускал примеры из библиотеки, тоже всё работает, а вот именно на эти ругается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.08.2015, 00:33

Структуры. Ошибка: main.cpp:(.text+0x1fe): undefined reference to `vvod(student*)'
Создаю структуру с 3 студентами их именами, оценками и прочими данными.Ошибки: main.cpp:(.text+0x1fe): undefined reference to...

Ошибка undefined symbol prce_compile in module program.cpp
Что за ошибка? undefined symbol prce_compile in module program.cpp

Main.cpp:10: ошибка: undefined reference to `vtable for A'
вот такая легкая программа не компилируется: #include &lt;QCoreApplication&gt; #include &lt;QObject&gt; #include &lt;iostream&gt; class A:...

C:\Users\qt\work\qt\qtbase\src\winmain\qtmain_win.cpp:97: ошибка: undefined reference to `qMain(int, char**)
Как правильно сконфигурировать проект? Создал проект с поддиректориями, в нём ещё два Main и MyWidget, первый является точкой входа для...

Ошибка obj\Release\main2.o:main2.cpp|| undefined reference to `_imp___ZN5boost6thread12start_threadEv'|
Библиотеки скомпилил, пути прописал, компилятор MinGW среда CodeBlocks


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru