未定义的符号throw_out_of_range的引用

时间:2016-02-26 10:52:28

标签: c++ linker-errors

在编译用分子计算某些东西的库时,我遇到了以下错误。这主要是学术项目。

/usr/bin/ld: trajectory_manager.o: undefined reference to symbol '_ZSt24__throw_out_of_range_fmtPKcz@@GLIBCXX_3.4.20'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line

我发现链接器正在尝试使用某些特定版本的GLIBC但未能找到它或其他东西,但我根本无法找到任何解决方案。

代码是使用g++ (gcc version 5.3)编译的。我在版本ldd (Ubuntu EGLIBC 2.19-0ubuntu6.7) 2.19中拥有的链接器。如有必要,请在评论部分告诉我,我将提供任何进一步的信息。

修改 每个src都使用以下编译:

mpiCC -pthread -ansi -Wno-long-long -g -D_DEBUG -I /home/asd/tunnel_analyzer/boost_lib/include  -I ../../../src/lib -o main.o -c ../../../src/main/main.cpp 
mpiCC -pthread -ansi -Wno-long-long -g -D_DEBUG -I /home/asd/tunnel_analyzer/boost_lib/include  -o cache.o -c ../../../src/lib/cache.cpp

等。和链接

mpiCC -pthread -ansi -Wno-long-long -g -D_DEBUG -I /home/asd/tunnel_analyzer/boost_lib/include -L/home/asd/tunnel_analyzer/boost_lib/lib -L. -o caverdock main.o cache.o coords.o current_weights.o everything.o grid.o szv_grid.o manifold.o model.o monte_carlo.o mutate.o my_pid.o naive_non_cache.o non_cache.o parallel_mc.o parse_pdbqt.o pdb.o quasi_newton.o quaternion.o random.o ssd.o terms.o weighted_terms.o constraint.o scheduler.o trajectory_manager.o -l boost_system -l boost_thread -l boost_serialization -l boost_filesystem -l boost_program_options

请注意,mpiCC只是g ++的别名。

1 个答案:

答案 0 :(得分:3)

它似乎是一个G ++ bug;安装libstdc ++ 6(4.9)显然有助于解决这个问题。