Неопределенные символы для архитектуры x86_64 при сборке программного пакета - PullRequest
0 голосов
/ 10 января 2019

В данный момент пытаюсь собрать программный пакет Neper. Я просмотрел много ошибок, но в настоящее время застрял, когда дело доходит до этой.

В терминале (mac), когда я строю с помощью команды make, я получаю следующий вывод:

[  2%] Built target muparser
[  7%] Built target ut
[ 13%] Built target orilib
[ 42%] Built target neut
[ 53%] Built target neper_v
[ 69%] Built target neper_m
[100%] Built target neper_t
[100%] Linking CXX executable neper
Undefined symbols for architecture x86_64:
  "___kmpc_critical", referenced from:
      _.omp_outlined. in libneper_m.a(nem_meshing_2D1.c.o)
      _.omp_outlined. in libneper_m.a(nem_meshing_3D1.c.o)
      _nem_meshing_2D_face in libneper_m.a(nem_meshing_2D2.c.o)
      _nem_mesh_2d_gmsh in libneper_m.a(nem_mesh_gmsh1.c.o)
      _nem_meshing_2D_face_algo in libneper_m.a(nem_meshing_2D3.c.o)
      net_polycomp_cells_updatecell(POLY, SEEDSET, nanoflann::KDTreeSingleIndexDynamicAdaptor<nanoflann::L2_Simple_Adaptor<double, NFCLOUD, double>, NFCLOUD, 3, unsigned long>**, int*, int, POLY**, TDYN*) in libneper_t.a(net_polycomp3.cpp.o)
      net_polycomp_poly(POLY, SEEDSET, nanoflann::KDTreeSingleIndexDynamicAdaptor<nanoflann::L2_Simple_Adaptor<double, NFCLOUD, double>, NFCLOUD, 3, unsigned long>**, int*, int, POLY*, TDYN*) in libneper_t.a(net_polycomp_poly1.cpp.o)
      ...
  "___kmpc_dispatch_init_4", referenced from:
      _.omp_outlined. in libneper_t.a(net_utils1.c.o)
      _.omp_outlined. in libneper_m.a(nem_meshing_2D1.c.o)
      _.omp_outlined..4 in libneper_m.a(nem_meshing_2D1.c.o)
      _.omp_outlined. in libneper_m.a(nem_meshing_3D1.c.o)
      _.omp_outlined. in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..2 in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..3 in libneper_t.a(net_polycomp2.cpp.o)
      ...
  "___kmpc_dispatch_init_4u", referenced from:
      _.omp_outlined..1 in libneper_t.a(net_ori_uniform4.cpp.o)
  "___kmpc_dispatch_next_4", referenced from:
      _.omp_outlined. in libneper_t.a(net_utils1.c.o)
      _.omp_outlined. in libneper_m.a(nem_meshing_2D1.c.o)
      _.omp_outlined..4 in libneper_m.a(nem_meshing_2D1.c.o)
      _.omp_outlined. in libneper_m.a(nem_meshing_3D1.c.o)
      _.omp_outlined. in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..2 in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..3 in libneper_t.a(net_polycomp2.cpp.o)
      ...
  "___kmpc_dispatch_next_4u", referenced from:
      _.omp_outlined..1 in libneper_t.a(net_ori_uniform4.cpp.o)
  "___kmpc_end_critical", referenced from:
      _.omp_outlined. in libneper_m.a(nem_meshing_2D1.c.o)
      _.omp_outlined. in libneper_m.a(nem_meshing_3D1.c.o)
      _nem_meshing_2D_face in libneper_m.a(nem_meshing_2D2.c.o)
      _nem_mesh_2d_gmsh in libneper_m.a(nem_mesh_gmsh1.c.o)
      _nem_meshing_2D_face_algo in libneper_m.a(nem_meshing_2D3.c.o)
      net_polycomp_cells_updatecell(POLY, SEEDSET, nanoflann::KDTreeSingleIndexDynamicAdaptor<nanoflann::L2_Simple_Adaptor<double, NFCLOUD, double>, NFCLOUD, 3, unsigned long>**, int*, int, POLY**, TDYN*) in libneper_t.a(net_polycomp3.cpp.o)
      net_polycomp_poly(POLY, SEEDSET, nanoflann::KDTreeSingleIndexDynamicAdaptor<nanoflann::L2_Simple_Adaptor<double, NFCLOUD, double>, NFCLOUD, 3, unsigned long>**, int*, int, POLY*, TDYN*) in libneper_t.a(net_polycomp_poly1.cpp.o)
      ...
  "___kmpc_for_static_fini", referenced from:
      _.omp_outlined. in libneut.a(neut_tesr_op1.c.o)
      _.omp_outlined. in libneper_v.a(nev_data_utils1.c.o)
      _.omp_outlined..51 in libneper_v.a(nev_data_utils1.c.o)
      _.omp_outlined. in libneper_v.a(nev_print_tesr1.c.o)
      _.omp_outlined..2 in libneper_v.a(nev_print_tesr1.c.o)
      _.omp_outlined..3 in libneper_v.a(nev_print_tesr1.c.o)
      _.omp_outlined..4 in libneper_v.a(nev_print_tesr1.c.o)
      ...
  "___kmpc_for_static_init_4", referenced from:
      _.omp_outlined. in libneut.a(neut_tesr_op1.c.o)
      _.omp_outlined. in libneper_v.a(nev_data_utils1.c.o)
      _.omp_outlined..51 in libneper_v.a(nev_data_utils1.c.o)
      _.omp_outlined. in libneper_v.a(nev_print_tesr1.c.o)
      _.omp_outlined..2 in libneper_v.a(nev_print_tesr1.c.o)
      _.omp_outlined..3 in libneper_v.a(nev_print_tesr1.c.o)
      _.omp_outlined..4 in libneper_v.a(nev_print_tesr1.c.o)
      ...
  "___kmpc_for_static_init_4u", referenced from:
      _.omp_outlined. in libneper_t.a(net_ori_uniform3.cpp.o)
      _.omp_outlined..1 in libneper_t.a(net_ori_uniform3.cpp.o)
      _.omp_outlined..2 in libneper_t.a(net_ori_uniform3.cpp.o)
      _.omp_outlined. in libneper_t.a(net_ori_uniform4.cpp.o)
      _.omp_outlined..3 in libneper_t.a(net_ori_uniform4.cpp.o)
      _.omp_outlined..4 in libneper_t.a(net_ori_uniform4.cpp.o)
  "___kmpc_fork_call", referenced from:
      _main in neper.c.o
      _neper_head in neper.c.o
      _net_tess_tesr in libneper_t.a(net_utils1.c.o)
      _neut_tesr_rotate in libneut.a(neut_tesr_op1.c.o)
      _nem_meshing_2D in libneper_m.a(nem_meshing_2D1.c.o)
      _nem_meshing_3D in libneper_m.a(nem_meshing_3D1.c.o)
      _nev_data_id_colour in libneper_v.a(nev_data_utils1.c.o)
      ...
  "___kmpc_global_thread_num", referenced from:
      _nem_meshing_2D_face in libneper_m.a(nem_meshing_2D2.c.o)
      _.omp_outlined. in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..2 in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..3 in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..4 in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..5 in libneper_t.a(net_polycomp2.cpp.o)
      _.omp_outlined..6 in libneper_t.a(net_polycomp2.cpp.o)
      ...
  "_omp_get_num_threads", referenced from:
      _.omp_outlined. in neper.c.o
  "_omp_get_thread_num", referenced from:
      _.omp_outlined. in neper.c.o
      _nem_mesh_2d_gmsh in libneper_m.a(nem_mesh_gmsh1.c.o)
      _nem_mesh_3d_gmsh in libneper_m.a(nem_mesh_gmsh1.c.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [neper] Error 1
make[1]: *** [CMakeFiles/neper.dir/all] Error 2
make: *** [all] Error 2

Кажется, что он построен полностью, но есть некоторое несоответствие с этими символами KMPC. Из того, что я прочитал, это похоже на проблему со стороны компилятора (которая может быть неправильной), но я еще не нашел каких-либо решений. Есть идеи, как исправить эту ошибку?

1 Ответ

0 голосов
/ 11 января 2019

Это похоже на этот вопрос Intel .

Я подозреваю, что вам нужно связать с libomp (но это только предположение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...