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

Ошибка undefined reference to - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Skrypnyk
1 / 1 / 0
Регистрация: 15.01.2013
Сообщений: 40
18.04.2013, 02:17     Ошибка undefined reference to #1
При сборке выбивает ошибку: undefined reference to `Atom:: DoBCC(float, int, int, int)'. Ткните носом, пожалуйста, где ошибка. Заранее благодарен.

main.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
28
29
30
31
32
33
34
35
#include <iostream>
#include "Atom.h"
 
using std::cout;
using std::cin;
using std::endl;
 
int main ()
{
    int latticeType;
    int dimX, dimY, dimZ; // number of translated lattices along each axis
    float d; // lattice parameter
    Atom myAtom; // object of class Atom
 
    cout << "Please choose the crystal lattice." << endl;
    cout << "Type 1 for BCC, 2 for FCC, and 3 for HCP:" << endl;
    cin >> latticeType; // read lattice type
    cout << "Please enter lattice parameter:" << endl;
    cin >> d;
    cout << "Please enter the number of translated lattices along X axis:" << endl;
    cin >> dimX;
    cout << "Please enter the number of translated lattices along Y axis:" << endl;
    cin >> dimY;
    cout << "Please enter the number of translated lattices along Z axis:" << endl;
    cin >> dimZ;
 
    if (latticeType==1) myAtom.DoBCC ( d, dimX, dimY, dimZ ); // if 1, create BCC lattice
    else
    {
        cout << "Invalid value" << endl;
        return 0;
    }
 
    return 0;
}
Atom.h
C++
1
2
3
4
5
6
7
class Atom
{
    public:
        void DoBCC ( float, int, int, int );
    private:
        float x, y, z;
};
Atom.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "Atom.h"
 
using std::cout;
using std::cin;
using std::endl;
 
typedef class Atom AtomType;
 
void Atom::DoBCC ( float d, int dimX, int dimY, int dimZ ) // beginning of the DoBCC function
{
    float a = d; // lattice parameter
    int Lx = dimX;
    int Ly = dimY;
    int Lz = dimZ; // number of translated lattices along each axis
 
   //дальше работаю с переменными a, Lx, Ly, Lz
 
} // end of the DoBCC function
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
18.04.2013, 02:48     Ошибка undefined reference to #2
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
//atom.h
class Atom
{
public:
    void DoBCC ( float, int, int, int );
private:
    float x, y, z;
};
//atom.cpp
#include atom.h
 
typedef class Atom AtomType;
 
void Atom::DoBCC( float x, int x2, int x3, int x4 )
{
    int i = 0;
}
//main.cpp
#include ...
void main()
{
   Atom myAtom;
   myAtom.DoBCC(0,0,0,0);
}
итог : ========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========
сборка в VS 2012
полное сообщение ошибки какое?
Skrypnyk
1 / 1 / 0
Регистрация: 15.01.2013
Сообщений: 40
18.04.2013, 10:33  [ТС]     Ошибка undefined reference to #3
Очень странно. Онлайн компилятор тоже запускает нормально. Но мой Code::Blocks 12.11 все время орет на меня:
Build messages:
Кликните здесь для просмотра всего текста
C:\Users\oniltech\Dropbox\CMS\Molecular Dynamics\Assignment 1\revision 1\BCC_FCC_HCP.o:BCC_FCC_HCP.cpp|| undefined reference to `Atom::DoBCC(float, int, int, int)'|
||=== Build finished: 1 errors, 0 warnings (0 minutes, 7 seconds) ===|

Build log:
Кликните здесь для просмотра всего текста
mingw32-g++.exe -march=athlon64 -Wall -c "C:\Users\oniltech\Dropbox\CMS\Molecular Dynamics\Assignment 1\revision 1\BCC_FCC_HCP.cpp" -o "C:\Users\oniltech\Dropbox\CMS\Molecular Dynamics\Assignment 1\revision 1\BCC_FCC_HCP.o"
mingw32-g++.exe -o "C:\Users\oniltech\Dropbox\CMS\Molecular Dynamics\Assignment 1\revision 1\BCC_FCC_HCP.exe" "C:\Users\oniltech\Dropbox\CMS\Molecular Dynamics\Assignment 1\revision 1\BCC_FCC_HCP.o"
C:\Users\oniltech\Dropbox\CMS\Molecular Dynamics\Assignment 1\revision 1\BCC_FCC_HCP.o:BCC_FCC_HCP.cpp:(.text+0x1b2): undefined reference to `Atom::DoBCC(float, int, int, int)'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 7 seconds)
1 errors, 0 warnings (0 minutes, 7 seconds)
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.04.2013, 10:51     Ошибка undefined reference to #4
проверте что файл Atom.cpp вообще компилируется. может он в проект не добавлен.
быстрый способ проверки: в Atom.cpp че-нить некомплиируемое пишите, например слово jopa и собираете проект. Если компилятор не споткнулся на слове jopa а дошел до линковки - значит файл не включен в сборку.
Skrypnyk
1 / 1 / 0
Регистрация: 15.01.2013
Сообщений: 40
18.04.2013, 10:54  [ТС]     Ошибка undefined reference to #5
DU, Спасибо большое. То же самое на другом форуме посоветовал товарищ. Я вообще проект не создавал. Собирал три отдельных файла. После создания проекта все работает. Огромное спасибо всем за оперативные ответы!
Yandex
Объявления
18.04.2013, 10:54     Ошибка undefined reference to
Ответ Создать тему
Опции темы

Текущее время: 13:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru