Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dima-dima
1 / 1 / 0
Регистрация: 27.11.2012
Сообщений: 129
#1

Собрать многофайловый проект в Turbo C++ (ошибка Linker error Undefined symbol f (int) in module) - C++

30.07.2014, 23:02. Просмотров 854. Ответов 10
Метки нет (Все метки)

Столкнулся с проблемой, сам не ожидал.
Вот три файла
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
#include <conio.h>
#include "menu.h"
 
int main(){
clrscr();
int y;
cin>>y;
cout<<f(y);
return 0;
}
menu.cpp
C++
1
2
3
4
#include "menu.h"
int f(int n){
    return n+5;
}
menu.h
C++
1
2
3
4
#ifndef _MENU_H
#define _MENU_H
int f(int n);
#endif
Написано в Turbo C++
Жму ctrl+F9
На этапе Linging main.exe появляется ошибка
Linker error Undefined symbol f(int) in module main.cpp
Почему так, где я допустил ошибку. Подскажите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 23:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Собрать многофайловый проект в Turbo C++ (ошибка Linker error Undefined symbol f (int) in module) (C++):

Linker Error: Undefined symbol _getimage in module - C++
Что это за ошибка и как ее исправить? Linker Error: Undefined symbol _getimage in module Linker Error: Undefined symbol...

Linker Error: undefined symbol - C++
Прога компилируется без ошибок, когда запускается, то появляется 10 ошибок. И все одного характера Linker Error: undefined symbol. ...

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

Linker Error: Undefined symbol istream.. - C++
Linker Error: Undefined symbol istream::getline(char near*, &gt; int, unsigned char) in module program.cpp. Пишет при попытке запуска...

[Linker error] undefined reference to `sterling(int, int, int)' - C++
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int sterling(int); int main() { ...

Ошибка [Linker error] undefined reference to `Vector::Vector(int)' - C++
Добрый день. Делал по методички, и почему-то валятся ошибки... файл lab9_main.cpp #include &lt;iostream&gt; #include &quot;Vector.h&quot; int...

10
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 23:12 #2
Цитата Сообщение от dima-dima Посмотреть сообщение
Почему так
Линкер не видит реализацию функции (файл menu.cpp).
0
dima-dima
1 / 1 / 0
Регистрация: 27.11.2012
Сообщений: 129
30.07.2014, 23:14  [ТС] #3
А почему не видит, как это исправить?
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 23:15 #4
Цитата Сообщение от dima-dima Посмотреть сообщение
А почему не видит, как это исправить?
Если бы это был не Turbo C++, то я сказал бы: нужно добавить файл menu.cpp в проект.
0
dima-dima
1 / 1 / 0
Регистрация: 27.11.2012
Сообщений: 129
30.07.2014, 23:17  [ТС] #5
А в какое среде можно было бы применить вашу рекомендацию.
Тем не менее, такая структура проекта как у меня должна работать в теории. Не понимаю, почему она не работает.
0
rikimaru2013
C++ Game Dev
2439 / 1133 / 240
Регистрация: 30.11.2013
Сообщений: 3,690
30.07.2014, 23:17 #6
Попробуй оставить в заголовке только
C++
1
int f(int n);
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2014, 23:24 #7
Цитата Сообщение от dima-dima Посмотреть сообщение
А в какое среде можно было бы применить вашу рекомендацию.
В разных. В студии, code blocks, dev c++...
Цитата Сообщение от dima-dima Посмотреть сообщение
Тем не менее, такая структура проекта как у меня должна работать в теории. Не понимаю, почему она не работает.
Совершенно не знаю, что это за среда: Turbo C++, поэтому ничего не могу сказать.

Добавлено через 2 минуты
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Попробуй оставить в заголовке только
С заголовком там, по-моему, всё нормально, иначе до линкера бы не дошло.
0
dima-dima
1 / 1 / 0
Регистрация: 27.11.2012
Сообщений: 129
30.07.2014, 23:25  [ТС] #8
Вообще помогло вставить в main.cpp
C++
1
#include "menu.cpp"
Уж не знаю, насколько это верно и не появится ли проблем потом.
0
HighPredator
5544 / 1857 / 346
Регистрация: 10.12.2010
Сообщений: 5,479
Записей в блоге: 2
01.08.2014, 12:26 #9
Цитата Сообщение от dima-dima Посмотреть сообщение
#ifndef _MENU_H
#define _MENU_H
int f(int n);
#endif
C++
1
2
3
4
#ifndef _MENU_H
#define _MENU_H
extern int f(int n);
#endif
0
Kuzia domovenok
1957 / 1810 / 142
Регистрация: 25.03.2012
Сообщений: 6,274
Записей в блоге: 1
01.08.2014, 15:14 #10
Цитата Сообщение от dima-dima Посмотреть сообщение
Уж не знаю, насколько это верно и не появится ли проблем потом.
То, что это работает не значит, что это верно. Изначальный вариант был правильный. Чтобы он работал, нужно по нормальному создать проект. Чтобы это сделать по нормальному нужно выкинуть Турбо си нафиг. По-хорошему, это нужно было сделать изначально, вне зависимости от того, будешь ты пользоваться проектами или нет.

Добавлено через 1 минуту
Цитата Сообщение от HighPredator Посмотреть сообщение
extern int f(int n);
разве extern обязательно применять к функциям?
0
HighPredator
5544 / 1857 / 346
Регистрация: 10.12.2010
Сообщений: 5,479
Записей в блоге: 2
01.08.2014, 15:40 #11
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
разве extern обязательно применять к функциям?
Вообще нет, но исходя из фактов:
а) тс имеет дело с архаичным турбо цпп
б) фиг его знает как там настроен линкер
имхо имеет смысл ему сказать чтобы точно искал реализацию в другой единице трансляции.
0
01.08.2014, 15:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2014, 15:40
Привет! Вот еще темы с ответами:

Что за ошибка(Linker error: Undesined symbol) - C++
Linker error: Undesined symbol proizv (float near*near*, float near*near*, int, float near*near*) in module ... #include&lt;stdio.h&gt; ...

Ошибка [Linker error] undefined reference to `__dyn_tls_init_callback' - C++
Вот такие ошибки появляются : Ошибка undefined reference to `__dyn_tls_init_callback' undefined reference to...

Ошибка: "Undefined symbol _inc in module" - C++
Переделала программу с Delphi на С++. но выдает ошибку: Undefined symbol _inc in module ... #include &lt;stdio.h&gt; #include &lt;math.h&gt; ...

[Решено] Ошибка: "Undefined symbol _main in module c0.ASM" при компиляции в пакетном режиме - C++
Доброго времени суток всем! При компиляции в пакетном режиме выходила следующая ошибка: Undefined symbol _main in module c0.ASM Но...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru