О коде на Blitz ++ Руководство пользователя

Я новичок в блиц-библиотеке. Когда я пытаюсь скомпилировать код для массива ввода и вывода в Blitz ++, руководство пользователя выглядит следующим образом:

#include <blitz/array.h>
#include <fstream>

BZ_USING_NAMESPACE(blitz)

const char* filename = "io.data";

void write_arrays()
{
ofstream ofs(filename);
if (ofs.bad())
{
cerr << "Unable to write to file: " << filename << endl;
exit(1);
}

Array<float,3> A(3,4,5);
A = 111 + tensor::i + 10 * tensor::j + 100 * tensor::k;
ofs << A << endl;

Array<float,2> B(3,4);
B = 11 + tensor::i + 10 * tensor::j;
ofs << B << endl;

Array<float,1> C(4);
C = 1 + tensor::i;
ofs << C << endl;
}

int main()
{
write_arrays();

ifstream ifs(filename);
if (ifs.bad())
{
cerr << "Unable to open file: " << filename << endl;
exit(1);
}

Array<float,3> A;
Array<float,2> B;
Array<float,1> C;

ifs >> A >> B >> C;

cout << "Arrays restored from file: " << A << B << C << endl;

return 0;
}

Я всегда получаю следующие ошибки:

"readtest.cpp:(.text+0x246): undefined reference to `blitz::tensor::k'
readtest.cpp:(.text+0x26c): undefined reference to `blitz::tensor::j'
readtest.cpp:(.text+0x281): undefined reference to `blitz::tensor::i'
readtest.cpp:(.text+0x69a): undefined reference to `blitz::tensor::j'
readtest.cpp:(.text+0x6b8): undefined reference to `blitz::tensor::i'
readtest.cpp:(.text+0x981): undefined reference to `blitz::tensor::i'
"

Кто-нибудь может мне помочь? Большое спасибо!

0

Решение

У меня была эта самая проблема. Вместо того, чтобы пытаться использовать тензор :: и тензор :: j, объявите следующее:

firstIndex i;
secondIndex j;
thirdIndex k;

Затем вы можете использовать их в своем коде напрямую, например:

A = 111 + i + 10 * j + 100 * k;

Я знаю, что их документы говорят иначе, но, видимо, они не собрали свой пример.

0

Другие решения

Других решений пока нет …