2015-04-03 132 views
-1

我創建了一個靜態庫,A,從我的C++項目之一,我可以在其他項目中使用,X.當靜態庫段錯誤調用另一個靜態庫

但是,從我的靜態庫,A部分功能,在靜態庫B(DevIL圖像加載庫)中調用其他函數。因此,爲了編譯我的項目X,我在鏈接器中包含了A和B,它編譯得很好。

的問題是我的程序只有一個分段錯誤,當我打電話從庫中的函數這反過來調用庫B.

有什麼方法來解決這個問題?我應該將圖書館A和B合併成一個圖書館嗎(沒有影響這個的許可問題)?如果這有所作爲,我正在使用Visual Studio 2013。

+0

使用debug-info構建應用程序和庫,然後在調試器中運行以捕獲崩潰。 – 2015-04-03 10:58:57

+0

我已經加入了調試器。我沒有相關庫的源B,但是錯誤發生在B分配內存的函數中。 – user929404 2015-04-03 11:03:28

+0

你是怎麼調用這個函數的?你確定這個問題不在你的代碼中嗎(在你如何調用函數,你傳遞的參數等)? – 2015-04-03 11:06:54

回答

0

我遇到了以正確順序鏈接庫的問題。檢查一下。

+0

你能解釋一下你的答案嗎? – user929404 2015-04-03 11:07:11

+0

您鏈接CMake中的.a文件的順序非常重要。 – 2015-04-03 11:34:07

+0

但是op使用msvc,並且它沒有問題:如果會有衝突btw符號鏈接器會投訴 – Christophe 2015-04-03 12:08:54

相關問題