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

LNK2019: Unresolved external symbol - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить максимальный элемент массива http://www.cyberforum.ru/cpp-beginners/thread698931.html
Сформировать массив из n элементов с помощью датчика случайных чисел. Удалить максимальный элемент массива со сдвигом последующих.
C++ Перегрузка оператора индексирования Собсно код с книжки списал. Понятно что данный класс на векторе построен (понятно, что можно на основе любого контейнера зафигачить), однако остается большим вопрос зачем обязательно ДВА оператора индексирования, зачем их перегружать, зачем нужно именно ДВА варианта? Ну и так же непонятно зачем было ссылку писать а не int в операторах, и зачем столько слов const.... Вроде все работает, но... http://www.cyberforum.ru/cpp-beginners/thread698922.html
Вывод четных и нечетных чисел в случайном порядке C++
Помогите пожалуйсто составить программу, для вывода четных чисел до 10(2, 4, 6, 8, 10), и нечетных до 11(1, 3, 5, 7, 9, 11), с помощью функций rand или srand, или любой другой функции, как будет удобней, главное нужно вывести эти значения в случайной последовательности, в С++ разбираюсь плохо, поэтому жду вашей помощи. Заранее спасибо!
C++ access violation at address
Дорогие форумчане, столкнулся с проблемой, читаю бинарный файл по структуре : struct HEAD { int a1; int a2; }; struct DATA1 {
C++ Разсчитать значение функции http://www.cyberforum.ru/cpp-beginners/thread698889.html
Доброго времени суток. Прошу вашей помощи. Необходимо написать программу, которая разсчитывает значение ф-ции y=cos5x, период для Х , шаг 0.01 и разсчитывает среднее значение всех значений ф-ции при определенном Х. Буду очень вам признателен. ЗЫ: через цикл
C++ Большие и маленькие буквы в кавычках Задача заключается в том, что слова написанные только заглавными буквами нужно заменить на строчные и поставить все слово в кавычки., использую два файла(с которого читать и в который записывать результат) *примечание: БЛА-блабла, не ставить в кавычки. подробнее

Показать сообщение отдельно
MegaC
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 27

LNK2019: Unresolved external symbol - C++

15.11.2012, 21:28. Просмотров 1123. Ответов 12
Метки (Все метки)

Приветствую!
Была поставлена задача написать некоторую программу. Пример был найден, но скомпилировать на VS2012 мне его не удалось.
Выпадают вот такие вот ошибки:
Error 1 error LNK2019: unresolved external symbol "public: __thiscall cpl::Vector::Vector(int)" (??0Vector@cpl@@QAE@H@Z) referenced in function "void __cdecl `dynamic initializer for 'txyz''(void)" (??__Etxyz@@YAXXZ) C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Test1\main.obj Test1
Error 2 error LNK2019: unresolved external symbol "public: __thiscall cpl::Vector::Vector(class cpl::Vector const &)" (??0Vector@cpl@@QAE@ABV01@@Z) referenced in function "void __cdecl RK4Step(class cpl::Vector &,double)" (?RK4Step@@YAXAAVVector@cpl@@N@Z) C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Test1\main.obj Test1
Error 3 error LNK2019: unresolved external symbol "public: class cpl::Vector & __thiscall cpl::Vector::operator=(class cpl::Vector const &)" (??4Vector@cpl@@QAEAAV01@ABV01@@Z) referenced in function "void __cdecl findNextCrossing(void)" (?findNextCrossing@@YAXXZ) C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Test1\main.obj Test1
Error 4 error LNK2019: unresolved external symbol "public: class cpl::Vector & __thiscall cpl::Vector::operator+=(class cpl::Vector const &)" (??YVector@cpl@@QAEAAV01@ABV01@@Z) referenced in function "void __cdecl RK4Step(class cpl::Vector &,double)" (?RK4Step@@YAXAAVVector@cpl@@N@Z) C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Test1\main.obj Test1
Error 5 error LNK2019: unresolved external symbol "class cpl::Vector __cdecl cpl::operator*(double,class cpl::Vector const &)" (??Dcpl@@YA?AVVector@0@NABV10@@Z) referenced in function "void __cdecl RK4Step(class cpl::Vector &,double)" (?RK4Step@@YAXAAVVector@cpl@@N@Z) C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Test1\main.obj Test1
Error 6 error LNK2019: unresolved external symbol "class cpl::Vector __cdecl cpl::operator/(class cpl::Vector const &,double)" (??Kcpl@@YA?AVVector@0@ABV10@N@Z) referenced in function "void __cdecl RK4Step(class cpl::Vector &,double)" (?RK4Step@@YAXAAVVector@cpl@@N@Z) C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Test1\main.obj Test1
Error 7 error LNK2019: unresolved external symbol "class cpl::Vector __cdecl cpl::operator+(class cpl::Vector const &,class cpl::Vector const &)" (??Hcpl@@YA?AVVector@0@ABV10@0@Z) referenced in function "void __cdecl RK4Step(class cpl::Vector &,double)" (?RK4Step@@YAXAAVVector@cpl@@N@Z) C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Test1\main.obj Test1
Error 8 error LNK1120: 7 unresolved externals C:\Users\Comp\documents\visual studio 2012\Projects\Test1\Debug\Test1.exe Test1
Сама программа выглядит следующим образом:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <cmath>
#include <cstdlib>
#include <fstream>
#include <iostream>
using namespace std;
 
#include "vector.h"
using namespace cpl;
 
double sigma = 10;                 //  Lorenz model constants in textbook
double b = 8.0 / 3.0;
double r = 25;
 
Vector f(Vector txyz) {            //  The Lorenz equations
    double t = txyz[0];
    double x = txyz[1];
    double y = txyz[2];
    double z = txyz[3];
    Vector f(4);
    f[0] = 1;
    f[1] = - sigma * x + sigma * y;
    f[2] = - x * z + r * x - y;
    f[3] = x * y - b * z;
    return f;
}
 
void RK4Step(                      //  4th order Runge-Kutta
    Vector& y,                     //  extended solution vector
    double h)                      //  step size
{
    Vector k1 = h * f(y);
    Vector k2 = h * f(y + 0.5 * k1);
    Vector k3 = h * f(y + 0.5 * k2);
    Vector k4 = h * f(y + k3);
    y += (k1 + 2 * k2 + 2 * k3 + k4) / 6.0;
}
 
Vector txyz(4);                    //  global variable to hold t,x,y,z
 
void initialize() {                //  initial conditions in textbook
    txyz[0] = 0.0;
    txyz[1] = 0.0;
    txyz[2] = 1.0;
    txyz[3] = 0.0;
}
 
double dt = 0.001;                 //  time step for integration
 
void findNextCrossing() {          //  find next Poincare section point
 
    Vector txyzOld = txyz;         //  save the old point
 
    while (true) {
        RK4Step(txyz, dt);         //  take a step
 
        // check whether y changes sign, i.e., crosses y = 0
        if (txyz[2] * txyzOld[2] < 0)
            break;                 // stop stepping
        else
            txyzOld = txyz;
    }
 
    //  use linear interpolation like in projectile.cpp to find intersection
    double r = txyzOld[2] / txyz[2];
    for (int i = 0; i < 4; i++)
        txyz[i] = (txyzOld[i] + r * txyz[i]) / (r + 1);
}
 
int main(int argc, char *argv[]) {
   
    cout << " Trajectory and Poincare Section for the Lorenz Attractor\n"
         << " using 4th order Runge-Kutta with time step dt = " << dt << "\n"
         << " sigma = " << sigma << ", b = " << b << ", r = " << r << endl;
 
    initialize();
    cout << " initial conditions: x = " << txyz[1] << "\t"
         << ", y = "  << txyz[2] << "\t" << ", z = "  << txyz[3] << endl;
 
    //  transient trajectory
    double t = 50;
    string fileName = "transient.data";
    cout << " Integrating to time t = " << t << "\n"
         << " trajectory in file " << fileName << endl;
    ofstream dataFile(fileName.c_str());
    dataFile << txyz[0] << "\t" << txyz[1] << "\t" 
             << txyz[2] << "\t" << txyz[3] << "\n";
    int step = 0;
    int skip = 5;
    while (txyz[0] < t) {
        RK4Step(txyz, dt);
        if (++step % skip != 0)    // record every skip steps
           continue;
        dataFile << txyz[0] << "\t" << txyz[1] << "\t" 
                 << txyz[2] << "\t" << txyz[3] << "\n";
    }
    dataFile.close();
    
    //  Poincare section
    fileName = "section.data";
    int points = 1000;
    cout << " Finding " << points << " Poincare section points at y = 0\n"
         << " section data in file " << fileName << endl;
    dataFile.open(fileName.c_str());
    for (int point = 0; point < points; point++) {
        findNextCrossing();
        dataFile << txyz[0] << "\t" << txyz[1] << "\t" 
                 << txyz[2] << "\t" << txyz[3] << "\n";
    }
}
Где файл: vector.h выглядит вот так:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#ifndef CPL_VECTOR_HPP
#define CPL_VECTOR_HPP
 
#include <complex>
#include <iostream>
 
namespace cpl {
 
class Vector {
  public:
 
    Vector(int dim = 1);
 
    Vector(const Vector& dv);
 
    ~Vector() { delete [] v; }
 
    int dimension() const { return dim; }
 
    void resize(const int);
 
    const double operator[](const int i) const { return v[i]; }
 
    double& operator[](const int i) { return v[i]; }
 
    Vector& operator = (const Vector& dv);
 
    Vector& operator += (const Vector& dv);
 
    Vector& operator -= (const Vector& dv);
 
    Vector& operator *= (double d);
 
    Vector& operator /= (double d);
 
    double abs();
 
    double norm();
 
    double dot(const Vector& dv);
 
    friend std::ostream& operator<<(std::ostream& os, const Vector& dv);
 
  private:
    int dim;
    double *v;
};
 
inline Vector operator + (const Vector& dv) {
    return dv;
}
 
extern Vector operator - (const Vector& dv);
 
extern Vector operator * (const Vector& dv, double d);
 
extern Vector operator * (double d, const Vector& dv);
 
extern Vector operator / (const Vector& dv, double d);
 
extern Vector operator + (const Vector& v1, const Vector& v2);
 
extern Vector operator - (const Vector& v1, const Vector& v2);
 
class ComplexVector {
  public:
    ComplexVector(int dim = 1);
    ComplexVector(const ComplexVector& cv);
    ~ComplexVector() { delete [] v; }
 
    int dimension() const { return dim; }
    const std::complex<double> operator[](const int i) const { return v[i]; }
    std::complex<double>& operator[](const int i) { return v[i]; }
    ComplexVector& operator = (const ComplexVector& cv);
 
  private:
    int dim;
    std::complex<double> *v;
};
 
class FFT {
  public:
    FFT() { N = 0; f = 0; inverse = false; }
    void transform(ComplexVector& data);
    void inverseTransform(ComplexVector& data);
    Vector power(ComplexVector& data);
 
  private:
    int N;
    ComplexVector *f;
    bool inverse;
 
    void bitReverse();
    void DanielsonLanczos(int n);
};
 
extern void solveTridiagonal(
        ComplexVector& a, ComplexVector& b, ComplexVector& c, 
        ComplexVector& r, ComplexVector& u);
 
extern void solveTridiagonalCyclic(
        ComplexVector& a, ComplexVector& b, ComplexVector& c, 
        std::complex<double> alpha, std::complex<double> beta,
        ComplexVector& r, ComplexVector& x);
 
}  /* end namespace cpl */
 
#endif  /* CPL_VECTOR_HPP */
Буду ооочень благодарен, если поможете разобраться!
Если есть вопросы по коду или самой задаче, то пишите. Все расскажу и покажу.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru