Основы работы с Meep C ++

Я пытаюсь бежать MIT MEEP на Ubuntu через его C ++ lib, но я был в целом неудачным. У меня meep и g ++ установлены правильно. Я могу запустить файл схемы Ctrl, но не библиотеки C ++.

Я пытаюсь простой код из учебника MEEP c ++. Meep.hpp находится там, где я дал. Я новичок в C ++.

Может ли кто-нибудь подсказать мне, что может быть не так?

Это первые строки ошибок, которые я получаю:

Building target: test2
Invoking: GCC C++ Linker
g++  -o "test2"  ./src/test2.o
./src/test2.o: In function `main':
/home/mad/clipse_workspace/test2/Debug/../src/test2.cpp:20: undefined reference to `meep::initialize::initialize(int&, char**&)'
/home/mad/clipse_workspace/test2/Debug/../src/test2.cpp:22: undefined reference to `meep::vol2d(double, double, double)'

Вот код, который я запускаю:

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

#include </usr/include/meep/meep.hpp>
using namespace meep;
using namespace std;

double eps(const vec &p);

int main(int argc, char **argv) {
initialize mpi(argc, argv); // do this even for non-MPI Meep
double resolution = 10; // pixels per distance
grid_volume v = vol2d(5,10, resolution); // 5x10 2d cell
structure s(v, eps, pml(1.0));
fields f(&s);

f.output_hdf5(Dielectric, v.surroundings());

double freq = 0.3, fwidth = 0.1;
gaussian_src_time src(freq, fwidth);
f.add_point_source(Ey, src, vec(1.1, 2.3));
while (f.time() < f.last_source_time()) {
f.step();
}

f.output_hdf5(Hz, v.surroundings());

return 0;
}

double eps(const vec &p) {
if (p.x() < 2 && p.y() < 3)
return 12.0;
return 1.0;
}

1

Решение

Вы должны связать библиотеку MEEP. Я скомпилировал ваше приложение так:

g++ -o test2 test2.cpp -lmeep

Файлы разработки MEEP можно установить следующим образом в Ubuntu:

sudo apt-get install libmeep-dev

Также измените оператор include следующим образом:

#include <meep.hpp>

Я проверил это на Ubuntu 15.10 и ваше приложение работало нормально.

2

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

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

По вопросам рекламы [email protected]