Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 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. Показов 4590. Ответов 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, 11:28
Если там есть функция hogun::init_shogun_with_defaults(), значит не подключил нужную библиотеку (libxxxx.a).
0
 Аватар для smartpointer
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
26.08.2015, 11:41
Рискну предположить, что библиотека Сишная - собиралась через gcc, видимо нужно пересобрать через g++.
Можно еще вот так попробовать.
C++
1
2
3
extern "C"{
#include <shogun/base/init.h>
}
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
26.08.2015, 12:07
Цитата Сообщение от Pepslee Посмотреть сообщение
target_link_libraries
эта функция на входе принимает имя цели, и список библиотек с которыми нужно линковаться.

вы же нигде не указали с какой именно библиотекой нужно линковаться.

Цитата Сообщение от Pepslee Посмотреть сообщение
${PROJECT_NAME}/home/gdal-2.1/gdal/build/lib
это путь к библиотеке, а не её имя.

итого: ваш проект не слинковался с библиотекой.
и как следствие, ничего кроме хэдэров вы не зацепили.

Цитата Сообщение от Pepslee Посмотреть сообщение
undefined reference to `shogun::init_shogun_with_defaults()'
не найденно туловище библиотечной функции.
потому что сама библиотека не подключена.

хэдэр содержит только прототип.
0
Респект C++
 Аватар для FCommander
23 / 33 / 14
Регистрация: 11.06.2015
Сообщений: 384
26.08.2015, 12:15
Добавьте эту библиотеку с расширением *.a в параметры проекта.
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 12:15  [ТС]
изменил CMakeList в этом месте

target_link_libraries( ${PROJECT_NAME} "C:/cygwin/home/shogun-3.1.1/build/src/shogun/cygshogun-15.dll" )

ошибка, не может найти эту .dll, но я проверял, она в этой папке лежит


/usr/lib/gcc/i686-pc-cygwin/4.9.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lC:/cygwin/home/shogun-3.1.1/build/src/shogun/cygshogun-15.dll
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 12:18
Цитата Сообщение от castaway Посмотреть сообщение
значит не подключил нужную библиотеку (libxxxx.a).
Цитата Сообщение от FCommander Посмотреть сообщение
Добавьте эту библиотеку с расширением *.a
Цитата Сообщение от Pepslee Посмотреть сообщение
ошибка, не может найти эту .dll
Мда.. тут тяжелый случай...
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 12:21  [ТС]
в папке три файла
libshogun.dll.a
libshogun.a
cygshogun-15.dll

попробовал подключить .а
ошибка: /usr/lib/gcc/i686-pc-cygwin/4.9.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lC:/cygwin/home/shogun-3.1.1/build/src/shogun/libshogun.a
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 12:22
Цитата Сообщение от Pepslee Посмотреть сообщение
попробовал подключить .а
Как ты пробовал?
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 12:23  [ТС]
в CMakeLists написал
target_link_libraries( ${PROJECT_NAME} "C:/cygwin/home/shogun-3.1.1/build/src/shogun/libshogun.a" )
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 12:24
Просто допиши туда shogun.
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 12:26  [ТС]
вместо libshogun.a ?

Добавлено через 1 минуту
target_link_libraries( ${PROJECT_NAME} "C:/cygwin/home/shogun-3.1.1/build/src/shogun/shogun" )


ошибка [100%] Linking CXX executable my_program.exe
/usr/lib/gcc/i686-pc-cygwin/4.9.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lC:/cygwin/home/shogun-3.1.1/build/src/shogun/shogun
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 12:28
Вместо: "C:/cygwin/home/shogun-3.1.1/build/src/shogun/libshogun.a"

Если не найдёт, добавь в переменную CMAKE_LIBRARY_PATH путь к ней.
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 12:42  [ТС]
в MakeLists написал следующее

C++
1
2
3
SET(CMAKE_LIBRARY_PATH "C:/cygwin/home/shogun-3.1.1/build/src/shogun")
 
target_link_libraries( ${PROJECT_NAME} shogun )
jошибка :

C++
1
2
3
[100%] Linking CXX executable my_program.exe
/usr/lib/gcc/i686-pc-cygwin/4.9.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lshogun
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
Добавлено через 6 минут
castaway,

в MakeLists написал следующее


C++
1
2
3
SET(CMAKE_LIBRARY_PATH "C:/cygwin/home/shogun-3.1.1/build/src/shogun")
 
target_link_libraries( ${PROJECT_NAME} shogun )
ошибка :


C++
1
2
3
[100%] Linking CXX executable my_program.exe
/usr/lib/gcc/i686-pc-cygwin/4.9.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lshogun
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 12:45
Где находится файл libshogun.a ?
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 12:48  [ТС]
в папке
C++
1
C:/cygwin/home/shogun-3.1.1/build/src/shogun
в папке три файла

libshogun.dll.a
libshogun.a
cygshogun-15.dll
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 12:55
Ок.
Это убери: SET(CMAKE_LIBRARY_PATH "C:/cygwin/home/shogun-3.1.1/build/src/shogun")

Добавь:
Bash
1
2
3
4
add_library( shogun STATIC IMPORTED )
set_property( TARGET shogun PROPERTY IMPORTED_LOCATION C:/cygwin/home/shogun-3.1.1/build/src/shogun/ )
 
target_link_libraries( ${PROJECT_NAME} shogun )
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 13:00  [ТС]
ошибка :

C++
1
2
3
4
5
6
7
8
C:/cygwin/home/shogun-3.1.1/build/src/shogun/: file not recognized: Is a directory
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
CMakeFiles/my_program.dir/build.make:113: ошибка выполнения рецепта для цели «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
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.08.2015, 13:03
Какая версия CMake?
Поправка: убери слово TARGET
Bash
1
2
3
4
add_library( shogun STATIC IMPORTED )
set_property( shogun PROPERTY IMPORTED_LOCATION C:/cygwin/home/shogun-3.1.1/build/src/shogun/ )
 
target_link_libraries( ${PROJECT_NAME} shogun )
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 71
26.08.2015, 13:12  [ТС]
написал:

C++
1
2
3
4
add_library( shogun STATIC IMPORTED )
set_property( TARGET shogun PROPERTY IMPORTED_LOCATION /home/shogun-3.1.1/build/src/shogun/ )
 
link_libraries( ${PROJECT_NAME} shogun )
получил:
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 `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
версия Cmake :

C++
1
2
3
4
$ cmake -version
cmake version 3.3.1
 
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Добавлено через 4 минуты
и я забыл уточнить, всё это я делаю в cygwin, может в этом какая то загвоздка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.08.2015, 13:12
Помогаю со студенческими работами здесь

Структуры. Ошибка: 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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru