2014-12-04 26 views
10

在MSVC 2012中進行調試期間,我試圖從Watch窗口調用某些函數以將數據轉儲到文件。不過,我不斷收到此錯誤:儘管已禁用優化,但「函數沒有地址」(/ Od)

Function Matrix::Save has no address, possibly due to compiler optimizations. 

Matrix位於我自己的外部庫。快速檢查表明,外部庫中沒有任何方法具有地址,並且從Watch中調用它們的所有嘗試都會返回此錯誤,但在頭文件中定義的那些除外。主項目中的方法都具有地址,而不管它們在何處定義。

當然,整個解決方案都禁用優化。符號正常加載。我如何解決它?

+0

圖書館如何鏈接?靜態的?動態?如果動態,如何加載? – doctorlove 2014-12-04 17:27:25

+0

它是動態鏈接的。 「如何裝載」是什麼意思? – 2014-12-04 17:35:04

+1

@AntonPoznyakovskiy你可以有隱式或顯式加載。如果隱含,那麼以上可能正常工作。如果是顯式的,那麼你需要使用你存儲的函數指針來調用。 – IdeaHat 2014-12-04 17:37:21

回答

0

到目前爲止,我發現了一個靜態構建外部庫的解決方法。通過靜態鏈接的庫,可以找到方法的地址。配置管理器可以輕鬆地爲發佈保留動態庫。

1

作爲一個更簡單的循環,您可以在當前代碼分支中至少調用一次目標函數(Matrix :: Save)。然後它會有一個地址,因爲它被使用。

+0

它不這樣工作。 – 2017-08-25 07:11:54

相關問題