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

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

Войти
Регистрация
Восстановить пароль
 
Jeremen1
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 58
#1

undefined reference хотя всё дефайнед - C++

17.02.2013, 22:12. Просмотров 363. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток. В С++ я новичёк, помогите пожалуйста разобраться в чём проблема.
Есть файл functions.h
Вот его содержимое
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
#ifndef FUNCTION_H
#define FUNCTION_H
 
void parse_exp(char str[], float *operand1, float *operand2, char *operation);
float calculate(int operand1, int operand2, char operation);
 
#endif // FUNCTION_H

Также есть файлы functions.cpp и main.cpp
functions.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 <stdio.h>
#include <string.h>
#include "functions.h"
 
#define MAX_LENGTH 50
 
void parse_exp(char* str[], float* operand1, float* operand2, char* operation) {
    int i = 0;
    char op1[MAX_LENGTH] = "";
    char op2[MAX_LENGTH] = "";
    int op_pos = -1;
 
    while (str[i] != NULL) {
        if (strcmp(str[i], "+") == 0 || strcmp(str[i], "-") == 0 || strcmp(str[i], "*") == 0 || strcmp(str[i], "/") == 0) {
            operation = str[i];
            op_pos = i;
        }
        if (op_pos == -1) {
            strcat(op1, str[i]);
        } else if (op_pos != -1) {
            strcat(op2, str[i]);
        }
        i++;
    }
    operand1 = reinterpret_cast<float*>(op1);
    operand2 = reinterpret_cast<float*>(op2);
}

main.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include "functions.h"
 
using namespace std;
 
int main(int argc, char *argv[])
{
    char expression[50] = "5+12";
    float* operand1;
    float* operand2;
    char* operation;
 
    parse_exp(expression, operand1, operand2, operation);
 
    return 0;
}

В итоге при компиляции получаю следующее.
undefined reference to `parse_exp(char*, float*, float*, char*)'
Вложения
Тип файла: rar lab3.rar (2.9 Кб, 4 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 22:12     undefined reference хотя всё дефайнед
Посмотрите здесь:

Undefined reference to `GrPlot' - C++
решил в еклипсе запустить тестовый код из инета. библиотеки вроде скачал и указал находит, а при компиляции к выдаёт кучу ошибок типа ...

undefined reference / android - C++
android 4.1.2 samsung i9300 CCTools c4android GradeBook.h

undefined reference to `variable` - C++
Вобщем то есть заголовочный файл main.h #ifndef _MAIN_H #define _MAIN_H #include &lt;vector&gt; #include &lt;windows.h&gt; using...

undefined reference to `vtable for - C++
Вылетает эта ошибка при компиляции вот этого класса: class BrassPlus : public AcctABC { private: double maxLoan; double...

Undefined reference to `auxDIBIm - C++
Здравствуйте, использую Dev C++. при компиляции проекта выдаёт ошибку Undefined reference to `auxDIBIm (на скриншоте) библиотека glaux.lib...

GLUT: undefined reference to... - C++
#include &lt;gl/glut.h&gt; void Draw() { } void initialize() { } int main (int argc, char** argv) { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
17.02.2013, 22:19     undefined reference хотя всё дефайнед #2
у тебя в прототипе parse_exp(char str[], float *operand1, float *operand2, char *operation);
а в обьявлении parse_exp(char* str[], float* operand1, float* operand2, char* operation)
Jeremen1
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 58
17.02.2013, 22:47  [ТС]     undefined reference хотя всё дефайнед #3
coloc, спасибо исправил. Но ничего не изменилось.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
17.02.2013, 22:49     undefined reference хотя всё дефайнед #4
Какие ошибки?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2013, 22:56     undefined reference хотя всё дефайнед
Еще ссылки по теме:

undefined reference to winmain@16 - C++
pomogite 4to takoi undefined reference to winmain@16? ya ya napisal metoda sortirovka viborom

Problem - Undefined reference to - C++
Доброго времени суток и спасибо заранее за Вашу помощь. В качестве хобби начал изучать C++. Прочитал немного материала на сайтах и...

undefined reference to `gzdopen' - C++
Здравствуйте, уважаемые форумчане! Нужна ваша помощь. Среда - Dev-Cpp. Пытаюсь написать программу с использованием zlib. ...

Ошибка: undefined reference to `WinMain@16' - C++
Подскажите пожалуйста, что означает эта ошибка и как от нее озбавиться: Linking... ...


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

Или воспользуйтесь поиском по форуму:
Jeremen1
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 58
17.02.2013, 22:56  [ТС]     undefined reference хотя всё дефайнед #5
Всё нашел в чём дело. Изменил char expression[50] = "5+12" на char* expression[50] = {"5+12"}
И заработало. Только к сожалению не так как хотелось. Не могилы бы вы пожалуйста посмотреть функцию parse_exp. Почему она не корректно работает, там происходит только 1 итерация цикла. Думаю смысл функции ясен. Но если кратко то есть строка нужно получить с неё 2 операнда и оператор между ними.
Yandex
Объявления
17.02.2013, 22:56     undefined reference хотя всё дефайнед
Ответ Создать тему
Опции темы

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