問題
今天在用Qt可視化CGAL生成的圖像的編程過程中遇到以下問題:
只要include了CGAL的頭文件或者Boost庫的頭文件,編譯就會出現“無法識別的外部符號”,“無法識別的外部命令”等錯誤。如下(由於我的問題已經解決,以下圖片是我找的,並不是我當時出的問題):
在查找資料後,一直無法解決,我當時想有兩種可能:1、需要包含相關的boost頭文件;2、需要鏈接相關庫文件,特別是boost庫文件。包含幾個頭文件後無效,就放棄第一種方法。着手第二種方法,該鏈接什麼庫文件?我的程序只需要兩個庫文件:
libboost_thread-vc120-mt-gd-1_57.lib
libboost_system-vc120-mt-gd-1_57.lib
媽蛋,什麼問題?原來這兩個庫文件是32bit的,我在編譯的時候疏忽了,沒有加上address-model=64
解決方法
重新編譯這兩個庫文件
參考1. 關於各種無法解析的外部符號問題的相應解決方案
2. Boost linker error: Unresolved external symbol “class boost::system::error_category const & __cdecl boost::system::get_system_category(void)”