Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4

undefined symvol при компиляции в консоли

02.11.2013, 17:14. Показов 2339. Ответов 14

Студворк — интернет-сервис помощи студентам
основня тема тут
проблема: при компиляции из эмулятора терминала вкручную(g++ -llib file.cpp) происходит ошибка компоновщика
При этом из IDE все норм собирается
вопрос: что мы делаем не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2013, 17:14
Ответы с готовыми решениями:

Ошибка при компиляции. undefined reference
вот часть кода как я понимаю не нравиться компилятору выдает эти ошибки: ...

Ощибка при компиляции WinAvr ....undefined reference to...
Привет всем! Господа не могу найти ошибку: после компиляции выскакивает вот такая ошибка main.c:undefined reference to имя функции. ...

При компиляции Dev-C ошибки: undefined reference to
Привествую. Подозреваю что что то не до объявил. Код: #include <iostream> using namespace std; int main() { ...

14
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.11.2013, 17:18
Выложи листинг файлов директории с библиотекой.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 17:36  [ТС]
допустим есть исходник test.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <dlfcn.h>
 
int main() {
    void* lib;
    void* sym;
    lib = dlopen("",0);
    if(lib != (void*)0) {
        sym = dlsym(lib,"");
        dlclose(lib);
    }
    return 0;
}
который в Eclipse CDT собирается на ура
компилю
Bash
1
2
3
4
5
6
max@notebook:~/src/tests$ g++ -ldl test.cpp
/tmp/cc29UQV2.o: In function `main':
test.cpp:(.text+0x13): undefined reference to `dlopen'
test.cpp:(.text+0x2f): undefined reference to `dlsym'
test.cpp:(.text+0x3f): undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
ищем где у нас либа
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
max@notebook:~/src/tests$ locate libdl
/lib/x86_64-linux-gnu/libdl-2.17.so
/lib/x86_64-linux-gnu/libdl.so.2
/lib32/libdl-2.17.so
/lib32/libdl.so.2
/libx32/libdl-2.17.so
/libx32/libdl.so.2
/usr/lib/debug/lib/x86_64-linux-gnu/libdl-2.17.so
/usr/lib/x86_64-linux-gnu/libdl.a
/usr/lib/x86_64-linux-gnu/libdl.so
/usr/lib32/libdl.a
/usr/lib32/libdl.so
/usr/libx32/libdl.a
/usr/libx32/libdl.so
пробуем подключить либу на прямую
Bash
1
2
3
4
5
6
g++ /usr/lib/x86_64-linux-gnu/libdl.a test.cpp
/tmp/cckToi0d.o: In function `main':
test.cpp:(.text+0x13): undefined reference to `dlopen'
test.cpp:(.text+0x2f): undefined reference to `dlsym'
test.cpp:(.text+0x3f): undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
02.11.2013, 21:17
Цитата Сообщение от Cra3y Посмотреть сообщение
g++ /usr/lib/x86_64-linux-gnu/libdl.a test.cpp
Здесь ошибка прогнозируема. Попробуйте в строке компилятора поменять местами libdl и test.cpp
А вот в первом случае, с -ldl, у меня компилируется без вопросов.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 21:53  [ТС]
Заметьте, ошибка не компилятора, а компоновщика возникает.
и попытка подключить либу напрямую возникла из предиущей ошибки компоновки

Добавлено через 8 минут
просто dl* функции являюся згрузчиком динамических библиотек, для тех, кто не в курсе
и вопрос в не том, как это делать, а ПОЧЕМУ этот код нормально линкуется в IDE и не канает в консоли

Добавлено через 7 минут
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
max@notebook:~/src/tests$ gcc --version
gcc (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
max@notebook:~/src/tests$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
Это свободное ПО; условия копирования - в исходных текстах
Гарантии НЕ предоставляются; в том числе гарантии ценности или пригодности
даже если можно было предположить иное.
 
Эта программа собрана для x86_64-pc-linux-gnu
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.11.2013, 21:57
Блин, не заставляйте меня ставить Linux на VB..
Цитата Сообщение от Cra3y Посмотреть сообщение
просто dl* функции являюся згрузчиком динамических библиотек, для тех, кто не в курсе
Спасибо. В курсе. Только это здесь не при чем..
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 22:00  [ТС]
dl* в данном примере притом, что компоновщик неможет их определить, как и другие функции
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
02.11.2013, 22:02
Цитата Сообщение от Cra3y Посмотреть сообщение
Заметьте, ошибка не компилятора, а компоновщика возникает.
Ну это, как бы, очевидно.
Цитата Сообщение от Cra3y Посмотреть сообщение
Добавлено через 8 минут
просто dl* функции являюся згрузчиком динамических библиотек, для тех, кто не в курсе
Вы все же пробовали написать
g++ -static test.cpp /usr/lib/x86_64-linux-gnu/libdl.a
Цитата Сообщение от Cra3y Посмотреть сообщение
и вопрос в не том, как это делать, а ПОЧЕМУ этот код нормально линкуется в IDE и не канает в консоли
Наверное потому что компоновщик не находит нужную библиотеку, используя поиск по умолчанию (/lib /usr/lib), а другого вы ему, в отличие от ИДЕ, ну указываете.
1
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 22:11  [ТС]
я не могу подключиь функции ниодной функции, включая функции динамической загрузки библиотек,
при этом функции из области ввидимости std::, например, нормально рабтают
а парадокс в том, что если компилировать тот же исходный файл в IDE, то все норм собираеся
я хочу узнать , какие такие флаги указывает IDE, что все прокатывает

ЗЫ проверял в 2х прогах:
NetBeans 7.4+c++plugin
Eclipse Kepler+CDT plugin

Добавлено через 2 минуты
Млин, писал я -static
не помогло
я придурок, но не дурак
маны читать умею
если бы он не находил либу то он писал бы -ldl не найдено...
0
02.11.2013, 22:13

Не по теме:

Цитата Сообщение от Cra3y Посмотреть сообщение
я придурок, но не дурак
маны читать умею
У тебя аватарка хреновая, люди тебе не хотят верить.. смени...
Ничего личного.

0
02.11.2013, 22:15  [ТС]

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение

Не по теме:

У тебя аватарка хреновая, люди тебе не хотят верить.. смени...
Ничего личного.

это моё лицо, сменить денег нет

0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
02.11.2013, 22:16
Еще раз, медленно.Напишите в консоли
g++ -static test.cpp /usr/lib/x86_64-linux-gnu/libdl.a
и выложите сюда ошибки.
Не перепутайте порядок следования файлов. Он критичен.

Добавлено через 7 секунд
Еще раз, медленно.Напишите в консоли
g++ -static test.cpp /usr/lib/x86_64-linux-gnu/libdl.a
и выложите сюда ошибки.
Не перепутайте порядок следования файлов. Он критичен.
1
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 22:22  [ТС]
Цитата Сообщение от gng Посмотреть сообщение
Еще раз, медленно.Напишите в консоли
g++ -static test.cpp /usr/lib/x86_64-linux-gnu/libdl.a
Не перепутайте порядок следования файлов. Он критичен.
О пля, я не знал, столько нервов и пива в пустую.... Го бухать в Скайп?)
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.11.2013, 22:24
Цитата Сообщение от Cra3y Посмотреть сообщение
О пля, я не знал
Не знал что статик не хочешь собрать?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 22:32  [ТС]
я про порядок указания параметров не знал...
при указании бтиблиотек перед исходником - ошибка компоновщика
при указании после все ок

Добавлено через 1 минуту
баг gcc или не баг я х.з.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2013, 22:32
Помогаю со студенческими работами здесь

LittleCMS при компиляции ошибка undefined reference to `cmsOpenProfileFromFile'
Друзья, добрый день. Изучаю азы языка Си, пробую использовать стороннюю библиотеку (Little CMS - модуль управление цветом:...

PostgreSQL и CLion, ошибка при компиляции undefined reference
Господа знатоки, который день мучаюсь с одной проблемой Изучаю PostgreSQL. Возникла потребность в управлении базой через C++. Узнал, что...

Странная ошибка при компиляции из консоли
Вот код: public class Int { int value=0; /* INCREMENT */ public void increment() { this.value++; }

Ошибка при компиляции undefined reference to `List<int>::List()'|
Доброго времени суток=) столкнулась с такой проблемой нужно написать шаблон класса. При компиляции выдает ошибку undefined reference to...

Сообщение "Undefined symbol 'IBQuery1'" при компиляции вставленного кода
Добрый день! Подскажите, добавил код в Unit.cpp/ void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column) { ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru