首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用g++为meep编译c++代码

使用g++为meep编译c++代码
EN

Stack Overflow用户
提问于 2017-06-23 07:17:15
回答 1查看 211关注 0票数 0

这是我第一次使用Stackoverflow提问。我一直在寻找在ubuntu中使用g++编译c++代码的解决方案,找到了很多相关内容,但没有直接回答我的问题……我的目标是能够在c++而不是scheme中创建控制文件,但是当我在ubuntu终端中编译时,它找不到meep.hpp文件。到目前为止,我已经使用apt-get安装了meep,并且相信我已经拥有了所有需要的库……这里的任何方式都是我用作测试的代码,以及我尝试过的命令:

代码语言:javascript
复制
#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;
}

我使用的命令是:

代码语言:javascript
复制
g++ FirstTest.cpp

或者像其他帖子中所说的:

代码语言:javascript
复制
g++ -o FirstTest FirstTest.cpp -lmeep

如果有人能为我指明正确的方向,我将不胜感激!我对linux还是很陌生的。

正如在下面的评论中提到的,我最近安装了libmeep-dev,现在获得以下更新

代码语言:javascript
复制
/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
EN

回答 1

Stack Overflow用户

发布于 2017-06-23 07:29:23

尝试指向include目录。看起来像这样

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44710749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档