0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5

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

27.12.2012, 12:40. Показов 3148. Ответов 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.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2012, 12:40
Ответы с готовыми решениями:

Ошибка при чтении символов строки, работа с классом
Делаю лабораторную на тему Класс студентов. Реализовал несколько функций ввода и вывода студентов, функцию расчета средней арифметической...

Ошибка при компиляции!Подскажите где ошибся?
Выдает ошибку при компиляции! Ругается что не объявлены cout, endl и sin. #include &quot;stdafx.h&quot; #include &quot;targetver.h&quot; ...

Работа с БД SQL. Ошибка при компиляции
Здраствуйте. Я начал работать с sql базами. И иногда при компиляцыи на странице сверху (больше ничево нет) появляеца такая надпись...

9
 Аватар для Nagdiel
117 / 116 / 8
Регистрация: 23.12.2012
Сообщений: 195
27.12.2012, 12:46
Забыл скобки у конструктора
C++
1
MeterNZiF *seb1tm02d = new MeterNZiF();
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
27.12.2012, 12:56
Nagdiel, это не имеет значение, в данном месте все корректно.

Varnak, как и чем Вы компилируете?
0
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
27.12.2012, 13:02  [ТС]
На машине установлена среда 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

Этих данных достаточно для ответа на Ваш вопрос
как и чем Вы компилируете?
?
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
27.12.2012, 13:15
Ошибка указывает на то, что не удается найти определение функции ( в данном случае конструктора ). Попробуйте вручную скомпилировать. Запустите терминал, с его помощью переместитесь папку с файлами исходного кода и введите:
Bash
1
2
g++ MeterNZiF.cpp main.cpp -o test
./test
1
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
27.12.2012, 14:51  [ТС]
Выполнил, вот результат:
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
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
27.12.2012, 14:58
Varnak, ну Вы же совсем не то делаете, еще посмотрите мое сообщение.
Bash
1
g++ MeterNZiF.cpp main.cpp -o test
0
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
27.12.2012, 15:16  [ТС]
Поправляюсь:
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 и до появления этого класса программа работала исправно.
Пожалуйста, поясните результат вывода?
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
27.12.2012, 16:10
Очень долго их описывать. Скопируйте 3 файла приведенные в листингах в первом сообщении в отдельный каталог, перейдите в него, и скомпилируйте приведенным выше способом. Все должно работать. По поводу NetBeans - создайте новый проект, и добавьте в него эти файлы.
1
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 5
29.12.2012, 07:38  [ТС]
Скопировал 3 файла во вновь созданный каталог, вывод на команду в консоли
Bash
1
g++ MeterNZiF.cpp main.cpp -o test
не изменился.
Откатывал виртуальную машину на момент, когда все работало без этого класса, подключил к новому проекту класс, результат тот же. Причем первая компиляции в NetBeans прошла удачно, чего не скажешь про все последующие, в том числе и с использованием команды в консоли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2012, 07:38
Помогаю со студенческими работами здесь

Ошибка при компиляции, работа с txt файлами
На скрине показаны ошбики, помогите пожалуйста, если нужна дополнительная информация спрашивайте, в краце хочу пока что передать в...

Работа с сокетами, ошибка при компиляции в Visual Studio 2013
Помогите пожалуйста в чем ошибка? // Server_new_chat.cpp : Defines the entry point for the console application. // #pragma...

При компиляции ошибка. Ошибка c++ C2678
Ошибка c++ C2678 #include &lt;windows.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include...

Ошибка при работе с классом
Если я запускаю программу в 3 файла(main.cpp, auto.h, auto.cpp) выдает ошибку id returned 1 exit status, и черным идет undefined reference...

Консоль: работа с классом List и ошибка добавления в него символов строки
Есть такой себе класс... public class ToRPN { protected string input = &quot;&quot;; protected string output =...


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

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

Новые блоги и статьи
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru