Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Varnak
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
#1

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++

27.12.2012, 12:40. Просмотров 1120. Ответов 9
Метки нет (Все метки)

Уважаемые форумчане!
При компиляции проекта возникает ошибка " undefined reference to `MeterNZiF::MeterNZiF()' " на 7 строку приложения.

Подскажите, пожалуйста, где я допустил ошибку?

Приложение (файл main.cpp):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "MeterNZiF.h"
int main()
{
    // некие действия
 
    while(1){
            MeterNZiF *seb1tm02d = new MeterNZiF;
 
            // некие действия
 
            delete seb1tm02d;
    }
    exit(0);
}
Интерфейс класса (файл MeterNZiF.h):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef _METERNZIF_H
#define _METERNZIF_H
 
class MeterNZiF {
public:
    MeterNZiF();
    MeterNZiF(const MeterNZiF& orig);
    virtual ~MeterNZiF();
 
    void SetTestChannel(unsigned char*);
    short GetTestChannel(unsigned char*, int);
private:
    unsigned char netAddr;
    unsigned char netAddrL[4];
    int fAddr;                          
};
 
#endif  /* _METERNZIF_H */
Определение класса (файл MeterNZiF.cpp):
C++
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
#include "MeterNZiF.h"
 
MeterNZiF::MeterNZiF()  {
    fAddr = 0;
    netAddr = 0x00;
    for (int i=0; i<4; i++) netAddrL[i] = 0x00;
}
 
MeterNZiF::MeterNZiF(const MeterNZiF& orig) {
    ;
}
 
MeterNZiF::~MeterNZiF() {
    ;
}
 
void MeterNZiF::SetTestChannel(unsigned char *from)  {
 
//тело функции-члена
 
}
 
short MeterNZiF:GetTestChannel(unsigned char *from, int len)  {
   
//тело функции-члена 
 
}
Проект создан в среде Netbeans под Ubuntu.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 12:40     Ошибка при компиляции. Где ошибка? (Работа с классом)
Посмотрите здесь:
C++ Ошибка при чтении символов строки, работа с классом
C++ Ошибка при компиляции!Подскажите где ошибся?
C++ Работа с сокетами, ошибка при компиляции в Visual Studio 2013
C++ Ошибка при работе с абстрактным классом pair
C++ Синтаксическая ошибка при определении метода перегруженного оператора,за классом
C++ Ошибка при компиляции
C++ Ошибка при компиляции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nagdiel
114 / 114 / 3
Регистрация: 23.12.2012
Сообщений: 195
27.12.2012, 12:46     Ошибка при компиляции. Где ошибка? (Работа с классом) #2
Забыл скобки у конструктора
C++
1
MeterNZiF *seb1tm02d = new MeterNZiF();
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
27.12.2012, 12:56     Ошибка при компиляции. Где ошибка? (Работа с классом) #3
Nagdiel, это не имеет значение, в данном месте все корректно.

Varnak, как и чем Вы компилируете?
Varnak
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
27.12.2012, 13:02  [ТС]     Ошибка при компиляции. Где ошибка? (Работа с классом) #4
На машине установлена среда NetBeans, вот ее About:

Product Version: NetBeans IDE 6.7.1 (Build 200907230233)
Java: 1.6.0_18; OpenJDK Client VM 16.0-b13
System: Linux version 2.6.31-22-generic running on i386; UTF-8; ru_RU (nb)
Userdir: /home/user/.netbeans/6.7

Этих данных достаточно для ответа на Ваш вопрос
как и чем Вы компилируете?
?
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
27.12.2012, 13:15     Ошибка при компиляции. Где ошибка? (Работа с классом) #5
Ошибка указывает на то, что не удается найти определение функции ( в данном случае конструктора ). Попробуйте вручную скомпилировать. Запустите терминал, с его помощью переместитесь папку с файлами исходного кода и введите:
Bash
1
2
g++ MeterNZiF.cpp main.cpp -o test
./test
Varnak
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
27.12.2012, 14:51  [ТС]     Ошибка при компиляции. Где ошибка? (Работа с классом) #6
Выполнил, вот результат:
Bash
1
2
3
4
user@user-desktop:~/iMX27/work/workspace/projects/test3$ g++ MeterNZiF.cpp -o test
/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o: In function `_start':
/build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main'
collect2: ld returned 1 exit status
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
27.12.2012, 14:58     Ошибка при компиляции. Где ошибка? (Работа с классом) #7
Varnak, ну Вы же совсем не то делаете, еще посмотрите мое сообщение.
Bash
1
g++ MeterNZiF.cpp main.cpp -o test
Varnak
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
27.12.2012, 15:16  [ТС]     Ошибка при компиляции. Где ошибка? (Работа с классом) #8
Поправляюсь:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
user@user-desktop:~/iMX27/work/workspace/projects/test3$ g++ MeterNZiF.cpp main.cpp -o test
main.cpp:7:22: error: rlserial.h: Нет такого файла или каталога
main.cpp:40: error: ‘rlSerial’ does not name a type
main.cpp: In function ‘int ReadLine()’:
main.cpp:183: error: ‘serial’ was not declared in this scope
main.cpp:187: error: ‘serial’ was not declared in this scope
main.cpp: In function ‘int SendMessage(int)’:
main.cpp:230: error: ‘serial’ was not declared in this scope
main.cpp: In function ‘int main()’:
main.cpp:327: error: ‘serial’ was not declared in this scope
main.cpp:327: error: ‘B9600’ was not declared in this scope
main.cpp:327: error: ‘rlSerial’ has not been declared
main.cpp:419: error: ‘serial’ was not declared in this scope
Все указанные ошибки не относятся к классу MeterNZiF и до появления этого класса программа работала исправно.
Пожалуйста, поясните результат вывода?
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
27.12.2012, 16:10     Ошибка при компиляции. Где ошибка? (Работа с классом) #9
Очень долго их описывать. Скопируйте 3 файла приведенные в листингах в первом сообщении в отдельный каталог, перейдите в него, и скомпилируйте приведенным выше способом. Все должно работать. По поводу NetBeans - создайте новый проект, и добавьте в него эти файлы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 07:38     Ошибка при компиляции. Где ошибка? (Работа с классом)
Еще ссылки по теме:
C++ Ошибка при компиляции
C++ Ошибка при компиляции
Ошибка при компиляции C++
C++ Ошибка при компиляции
Ошибка при компиляции C++

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

Или воспользуйтесь поиском по форуму:
Varnak
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
29.12.2012, 07:38  [ТС]     Ошибка при компиляции. Где ошибка? (Работа с классом) #10
Скопировал 3 файла во вновь созданный каталог, вывод на команду в консоли
Bash
1
g++ MeterNZiF.cpp main.cpp -o test
не изменился.
Откатывал виртуальную машину на момент, когда все работало без этого класса, подключил к новому проекту класс, результат тот же. Причем первая компиляции в NetBeans прошла удачно, чего не скажешь про все последующие, в том числе и с использованием команды в консоли.
Yandex
Объявления
29.12.2012, 07:38     Ошибка при компиляции. Где ошибка? (Работа с классом)
Ответ Создать тему
Опции темы

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