[英]Compiling c++ code for meep using g++
這是我第一次使用Stackoverflow提出問題。 我一直在尋找在ubuntu中使用g ++編譯c ++代碼的解決方案,並且發現了很多相關內容,但是沒有任何內容可以直接回答我的問題...我的目標是能夠在c ++中而不是在方案中創建控制文件,但是當我在ubuntu終端中編譯,無法找到meep.hpp文件。 到目前為止,我已經使用apt-get和beleive安裝了meep,我擁有所有必需的庫...這里的任何方式都是我正在用作測試的代碼以及我嘗試過的命令:
#include <meep.hpp>
using namespace std;
using namespace meep;
double eps(const vec &p) {
if (p.x() < 2 && p.y() < 3)
return 12.0;
return 1.0;
}
int main(int argc, char **argv) {
initialize mpi(argc, argv); // do this even for non-MPI Meep
double resolution = 20; // 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;
}
我使用的命令是:
g++ FirstTest.cpp
或如其他線程所說:
g++ -o FirstTest FirstTest.cpp -lmeep
如果有人能指出我正確的方向,我將不勝感激! 我對Linux還是很陌生
如下面的評論中所述,我最近安裝了libmeep-dev,現在獲得了以下內容
/tmp/ccBM5Uuc.o: In function `main':
FirstTest.cpp:(.text+0xa6): undefined reference to `meep::initialize::initialize(int&, char**&)'
FirstTest.cpp:(.text+0x10e): undefined reference to `meep::vol2d(double, double, double)'
FirstTest.cpp:(.text+0x11d): undefined reference to `meep::identity()'
FirstTest.cpp:(.text+0x134): undefined reference to `meep::pml(double)'
FirstTest.cpp:(.text+0x1a1): undefined reference to `meep::structure::structure(meep::grid_volume const&, double (*)(meep::vec const&), meep::boundary_region const&, meep::symmetry const&, int, double, bool, double, int)'
FirstTest.cpp:(.text+0x1bf): undefined reference to `meep::symmetry::~symmetry()'
FirstTest.cpp:(.text+0x1e7): undefined reference to `meep::fields::fields(meep::structure*, double, bool, double, bool)'
FirstTest.cpp:(.text+0x200): undefined reference to `meep::grid_volume::surroundings() const'
FirstTest.cpp:(.text+0x234): undefined reference to `meep::fields::output_hdf5(meep::component, meep::volume const&, meep::h5file*, bool, bool, char const*)'
FirstTest.cpp:(.text+0x2b9): undefined reference to `meep::gaussian_src_time::gaussian_src_time(double, double, double)'
FirstTest.cpp:(.text+0x363): undefined reference to `meep::fields::add_point_source(meep::component, meep::src_time const&, meep::vec const&, std::complex<double>)'
FirstTest.cpp:(.text+0x383): undefined reference to `meep::fields::step()'
FirstTest.cpp:(.text+0x3a9): undefined reference to `meep::fields::last_source_time()'
FirstTest.cpp:(.text+0x3d1): undefined reference to `meep::grid_volume::surroundings() const'
FirstTest.cpp:(.text+0x405): undefined reference to `meep::fields::output_hdf5(meep::component, meep::volume const&, meep::h5file*, bool, bool, char const*)'
FirstTest.cpp:(.text+0x437): undefined reference to `meep::fields::~fields()'
FirstTest.cpp:(.text+0x446): undefined reference to `meep::structure::~structure()'
FirstTest.cpp:(.text+0x464): undefined reference to `meep::initialize::~initialize()'
FirstTest.cpp:(.text+0x491): undefined reference to `meep::structure::~structure()'
FirstTest.cpp:(.text+0x4a5): undefined reference to `meep::symmetry::~symmetry()'
FirstTest.cpp:(.text+0x4bc): undefined reference to `meep::structure::~structure()'
FirstTest.cpp:(.text+0x520): undefined reference to `meep::fields::~fields()'
FirstTest.cpp:(.text+0x534): undefined reference to `meep::structure::~structure()'
FirstTest.cpp:(.text+0x55c): undefined reference to `meep::initialize::~initialize()'
/tmp/ccBM5Uuc.o: In function `meep::gaussian_src_time::~gaussian_src_time()':
FirstTest.cpp:(.text._ZN4meep17gaussian_src_timeD2Ev[_ZN4meep17gaussian_src_timeD5Ev]+0x13): undefined reference to `vtable for meep::gaussian_src_time'
collect2: error: ld returned 1 exit status
嘗試指向包含目錄。 看起來像這樣
g++ -o FirstTest FirstTest.cpp -lmeep -I/example/include/path -L/example/lib/path
也許是-I/usr/include -L/usr/lib
這就是您要尋找的東西https://github.com/stevengj/meep/blob/master/doc/docs/C%2B%2B_Tutorial.md
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.