Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
 Аватар для artem78
6 / 8 / 2
Регистрация: 20.12.2012
Сообщений: 729

Не видит функцию из подключённого модуля

17.02.2019, 18:42. Показов 4941. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему в главном файле не видны определения foo1() и foo2() из подключённых модулей?

08modules.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//using namespace std;
#include <iostream>
#include "module1.h"
#include "module2.h"
#include "module1.h" // Ничего страшного - в модуле включена условная компиляция
 
int main() {
    std::cout << "const1 = " << MY_CONST1 << std::endl;
    std::cout << "const2 = " << MY_CONST2 << std::endl;
        
    foo1();
    foo2();
    
    //cout << "hidden const = " << MY_HIDDEN_CONST << endl;  // ошибка, естественно
    
    return 0;
}
module1.h
C++
1
2
3
4
5
6
7
8
#ifndef MODULE1_H
#define MODULE1_H
 
const int MY_CONST1 = 909;
 
void foo1();
 
#endif
module1.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include "module1.h"
 
#include <iostream>
//using namespace std;
 
const int MY_HIDDEN_CONST = 123456;
 
void foo1() {
    std::cout << "foo1() from module1" << std::endl;
    std::cout << "const = " << MY_CONST1 << std::endl;
}
module2.h
C++
1
2
3
4
5
6
7
8
#ifndef MODULE2_H
#define MODULE2_H
 
const int MY_CONST2 = 101;
 
void foo2();
 
#endif
module2.cpp
C++
1
2
3
4
5
6
7
8
9
#include "module2.h"
 
#include <iostream>
//using namespace std;
 
void foo2() {
    std::cout << "foo2() from module2" << std::endl;
    std::cout << "const = " << MY_CONST2 << std::endl;
}
Code
1
2
3
4
5
6
g++ -Wall -o "08modules" "08modules.cpp" (в каталоге: /home/user/cpp)
/tmp/cc3UKUis.o: In function `main':
08modules.cpp:(.text+0x57): undefined reference to `foo1()'
08modules.cpp:(.text+0x5c): undefined reference to `foo2()'
collect2: error: ld returned 1 exit status
Сборка завершилась с ошибкой.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2019, 18:42
Ответы с готовыми решениями:

Почему модуль не видит процедуру из другого подключенного к нему модуля?
Помогите, пожалуйста, найти ошибку. Почему модуль не видит расшареную в другом модуле процедуру? Выдается ошибка: unit1.pas(43,3)...

Не видит функцию общего модуля
Всем доброго времени суток! Возникла проблемка - из модуля формы одного из справочников ни в какую не хочет видеть функцию из общего...

Наличие подключенного модуля
Добрый день, подскажите плииз. Использую конструкцию require(process.cwd()+'/lib/my1.js'); ...

5
 Аватар для DanKor1498
8 / 8 / 4
Регистрация: 15.04.2018
Сообщений: 45
17.02.2019, 18:45
В какой среде пишете?
0
 Аватар для artem78
6 / 8 / 2
Регистрация: 20.12.2012
Сообщений: 729
17.02.2019, 18:47  [ТС]
Цитата Сообщение от DanKor1498 Посмотреть сообщение
В какой среде пишете?
Geany на Linux Mint. GCC 4.8.2.
0
 Аватар для DanKor1498
8 / 8 / 4
Регистрация: 15.04.2018
Сообщений: 45
17.02.2019, 18:58
Это проблемы именно среды или компилятора. Я писал программы в среде Dev C++(Windows) GCC 4.7.1, постоянно проблемы с созданием много файловых проектов. Плюнул и перешел на Microsoft Visual Studio. И вот собственно:
Миниатюры
Не видит функцию из подключённого модуля  
1
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
17.02.2019, 19:02
Лучший ответ Сообщение было отмечено artem78 как решение

Решение

Цитата Сообщение от artem78 Посмотреть сообщение
Почему в главном файле не видны определения foo1() и foo2() из подключённых модулей?
Определения как раз таки видны. А вот undefined reference to говорит о том, что нет реализации. Вам необходимо компилировать все cpp файлы.

g++ -o 08modules module1.cpp module2.cpp 08modules.cpp
или
g++ -o 08modules *.cpp

Добавлено через 3 минуты
Цитата Сообщение от DanKor1498 Посмотреть сообщение
Плюнул и перешел на Microsoft Visual Studio
Сгинь, нечистая сила
1
 Аватар для artem78
6 / 8 / 2
Регистрация: 20.12.2012
Сообщений: 729
17.02.2019, 19:38  [ТС]
Цитата Сообщение от DanKor1498 Посмотреть сообщение
Это проблемы именно среды или компилятора. Я писал программы в среде Dev C++(Windows) GCC 4.7.1, постоянно проблемы с созданием много файловых проектов. Плюнул и перешел на Microsoft Visual Studio. И вот собственно:
Мне C++ по большому счёту больше для изучения или для себя нужен, чем для реальной работы. Так что тянуть какую-нибудь монструозную среду не вижу смысла. А вообще, я Майкрософт недолюбливаю - ведь полно же бесплатных IDE!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2019, 19:38
Помогаю со студенческими работами здесь

Функция общего модуля не видит экспортную функцию в другом модуле
Добрый день, суть вопроса такова: Функция общего модуля не видит экспортную функцию в модуле управляемого приложения, нажимаю f12 и ничего,...

Рисование линии из подключенного модуля
В проекте из учебника добавляется новый модуль и кнопка. При нажатии кнопки нужно чтобы рисовались линии командами из модуля- как это...

Оформить процедуру / функцию вычисления модуля числа, не используя функцию abs
Оформить процедуру вычисления модуля числа, не используя функцию abs. ...

PyCharm не видит функции из модуля math
Здравствуйте. При импорте некоторых модулей PyCharm подчёркивает имена функций красным. Скорее всего это связано с тем, что функции...

Основной файл не видит содержимое подключаемого модуля
Всем привет! Нуждаюсь в помощи. Вопрос в заглавии темы. Второй день бьюсь. В sys.path добавлял путь к файлам, не помогает. Приведу...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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