我試圖添加PNG支持到我的應用程序,因此我想包括libpng。我知道它需要zlib,因此我也下載了它。我進入了png文件夾/ projects/vstudio,然後我打開了解決方案。我編譯它,它很好。我添加了一些頭文件到我的應用程序中,並複製了lib文件。我的程序是一個用C++編寫的dll,後來在C#中使用。當我用C#運行它時,它抱怨沒有找到我的dll(如果我刪除了png部分,它很好用)。我以前遇到過這個問題,通常意味着dll依賴項是錯誤的。
現在... libpng編譯了一些.lib文件和一些.dll文件。該dll文件更大。我唯一的猜測是,它需要DLL文件,但我已經看到,人們可以鏈接到libpng沒有DLL。
所以我的問題是:我如何編譯libpng(和zlib的那個實例)到靜態庫中,我怎樣才能將這些包含在我的項目中?我在互聯網上搜索過,找不到任何有用的東西。與Visual Studio 2010靜態libpng鏈接
2
A
回答
3
爲了使所有的庫都是靜態的,你必須重新編譯一切「從零開始」作爲靜態庫。
這只是意味着你應該建立在你的序列你有每個庫的一組項目,輸出類型設置爲靜態庫。
之後,您應該消除庫本身之間的庫依賴關係(這意味着您應該將某些項目的輸出鏈接到另一個項目,例如如果您的「libpng」庫使用「libzip」,這意味着您應該先編譯「libzip」和鏈接輸出(靜態庫)到你的「的libpng」項目。
在快結束的時候,你將有一個大集編譯平臺,你可以在你的項目中使用靜態庫的。
另外要提一下,請仔細閱讀Google搜索。我確定有人有這樣做,你可能需要爲你的平臺下載一個.lib文件包(我知道「dev」庫包只包含一個導入庫與適當的.dll配對文件,但有很多像你這樣的愛好者:)
相關問題
- 1. Visual Studio 2010和QT 4.7.1靜態鏈接
- 2. 鏈接到靜態庫在Visual Studio 2010
- 3. Visual Studio:靜態鏈接到靜態庫
- 4. Visual Studio 2010中的動態和靜態鏈接和部署
- 5. C++ Visual Studio 2010未鏈接本機靜態庫
- 6. 問題在Visual Studio靜態鏈接庫中的hunspell 2010
- 7. 如何在Visual Studio 2010中構建靜態鏈接的程序?
- 8. 從Visual Studio 2008中使用靜態庫與Visual Studio 2010
- 9. 使用Visual Studio靜態鏈接Lua 14
- 10. 在Visual Studio中靜態鏈接庫
- 11. 在Visual Studio中靜態鏈接ffmpeg庫
- 12. 在C++ visual studio中鏈接靜態庫
- 13. 與CMake和Visual Studio 2010鏈接錯誤
- 14. 將OpenCV 2.4.2與Visual Studio 2010鏈接
- 15. Visual Studio 2010 - 鏈接MySQL
- 16. libpng錯誤:讀取錯誤(Visual Studio 2010)
- 17. 與libpng&zlib鏈接?
- 18. 鏈接libpng與g ++
- 19. 靜態DataGrid列寬度在Visual Studio 2010
- 20. 的Visual Studio 2012的鏈接與靜態庫
- 21. CMake Visual Studio鏈接可執行文件與靜態庫
- 22. 靜態libzip與Visual Studio 2012
- 23. 靜態對象與Visual Studio
- 24. 鏈接問題與Visual Studio 2010在2010年VS臨
- 25. 引用其他靜態庫中的靜態庫(Visual Studio 2010)
- 26. 如何將靜態庫(SOIL)鏈接到visual studio 2010中的項目?
- 27. 靜態和動態庫鏈接在Visual Studio C++
- 28. Microsoft Visual Studio〜C/C++運行時庫〜靜態/動態鏈接
- 29. Visual Studio C++ 2010鏈接錯誤
- 30. Visual Studio 2010和鏈接的資源
真正重新編譯這個東西並不難 - 創建一個項目,添加所有文件。沒有更多的問題與不同的運行時版本或類似的東西。 – sharptooth 2010-06-02 10:59:54
那麼,嘗試通過「創建項目和添加文件」來完全構建'gtkmm';)*有時候所有這些內部依賴關係都可能成爲真正的屁股疼痛* – 2010-06-02 11:05:16
也許,但是我們毫無麻煩地構建zlib和SQLite。 – sharptooth 2010-06-02 12:41:04