2016-02-26 78 views
1

我在編譯用分子計算某些東西的庫時遇到以下錯誤。這主要是學術項目。對符號的未定義引用throw_out_of_range

/usr/bin/ld: trajectory_manager.o: undefined reference to symbol '[email protected]@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別名++。

+0

也許它有幫助http://stackoverflow.com/questions/19901934/strange-linking-error-dso-missing-from-command-line –

+0

你是如何編譯項目?你使用了哪些命令? –

+0

增加了命令。不幸的是,鏈接的問題涉及到lib標記的錯誤排序,這並不是那種問題。 – Jendas

回答

3

它似乎是一個G ++ bug;安裝libstdC++ 6(4.9)顯然有助於解決這個問題。

+0

根據'libstdC++ 6-4.9'的適應性,只有'libstdC++ 6-4.9-dbg'包。 – Jendas

+0

我試過安裝'dbg'軟件包,但它沒有解決問題: -/ – Jendas

+0

調試這類問題絕非易事;我首先試圖找出缺失的符號在哪裏定義....它必須在某個地方 – Pandrei