我有問題,我想用lib hqp編譯一些軟件。這個lib使用adolc,但是舊版本的一個棄用函數。由於我只有新版本,所以缺少一個類(adoublev),並且出現編譯錯誤。現在我嘗試寫一個包裝,但在這裏我得到錯誤。C++:未定義的函數參考
之前:我直到現在還沒有意識到問題,並編譯了新版本的adolc hqp。我寫了一個簡單的adoublev類,它實現了必要的操作符(operator [])。
現在我想編一個例子。我得到
Prg_T2Topt.o:(.rodata._ZTV10Prg_T2Topt[vtable for Prg_T2Topt]+0x20):
undefined reference to `Omu_Program::consistic(int, double, adoublev const&, adoublev const&, adoublev&)'
注意:Prg_T2Topt。*是我的例子,Omu_Program是hqp的一部分。
爲什麼hqp的第一次安裝不會以關於adoublev(gcc/g ++ used)缺失聲明/定義的錯誤而告終? 我是否需要更新hqp,以便不再使用adoublev?
爲什麼編譯我的示例會導致關於consistic的錯誤,即使此示例中沒有實現此方法?
的例子可以在http://codepad.org/Cv0tdoyS和http://codepad.org/ezQQPUg4找到(有點冗長)
一般來說,編譯器(或者說連接器)不會呻吟一下未定義的引用,除非有東西試圖使用它。可能發生的事情是,你正在使用的庫函數之一是試圖調用它,當構建庫時,它不會因爲編譯而不是鏈接而呻吟。 – Dan